一、C语言利用GCC特性
#include <stdio.h>
__attribute((constructor)) void before_main()
{
printf("%s/n",__FUNCTION__);
}
__attribute((destructor)) void after_main()
{
printf("%s/n",__FUNCTION__);
}
二、C++ 可以使用全局变量构造函数
#include <Iostream>
using namespace std;
class TestClass
{
public:
TestClass();
};
TestClass::TestClass()
{
cout<<"TestClass"<<endl;
}
三、C++11 可以使用
// C++11
#include <iostream>
int a = []() {
std::cout << "a";
return 0;
}();
参考连接
https://www.zhihu.com/question/26031933