(转载)如何让一段程序在main函数之前执行

(转载)http://blog.csdn.net/xuhongtao123459/article/details/5821706

方法1:

声明一个全局变量,或者全局对象,这个全局对象在man函数之前被执行。

#include <iostream>

using namespace std;

class App
{
public:
    App() {cout << "I was born!" << endl;}
};

App a;

int main(int argc, char** argv)
{
    cout << "In main function!" << endl;

    return 0;
}

程序输出:

方法2:

#include <stdio.h>
#include <stdlib.h>

static void before(void) __attribute__((constructor));
static void after(void) __attribute__((destructor));
static void middle(void);

static void before(void)
{
    fprintf(stdout, "In %s %d\n", __func__, __LINE__);
}

static void after(void)
{
    fprintf(stdout, "In %s %d\n", __func__, __LINE__);
}

static void middle(void)
{
    fprintf(stdout, "In %s %d\n", __func__, __LINE__);
}


int main(int argc, char** argv)
{
    atexit(middle);

    return 0;
}

程序输出:

原文地址:https://www.cnblogs.com/Robotke1/p/3076160.html