(转载)如何让一段程序在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; }
程序输出: