在C语言中,如果使用GCC的话,可以通过attribute关键字声明constructor和destructor(C语言中如何在main函数开始前执行函数)
#include <stdio.h>
__attribute((constructor)) void before_main()
{
printf("%s/n",__FUNCTION__);
}
__attribute((destructor)) void after_main()
{
printf("%s/n",__FUNCTION__);
}
int main( int argc, char ** argv )
{
printf("%s/n",__FUNCTION__);
return 0;
}
在C++中,利用全局变量和构造函数的特性,通过全局变量的构造函数执行(C++语言怎么在main函数执行之前执行一段代码)
#include <Iostream>
using namespace std;
class TestClass
{
public:
TestClass();
};
TestClass::TestClass()
{
cout<<"TestClass"<<endl;
}
TestClass Ts;//定义个全局变量,让类里面的代码在main之前执行
int main()
{
cout<<"main"<<endl;
return 0;
}