C++ --- 写个函数在main函数执行前先运行
Posted Overboom
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ --- 写个函数在main函数执行前先运行相关的知识,希望对你有一定的参考价值。
这里介绍两种方法:
1.使用attribute关键字,声明constructor和destructor函数(gcc中,注意:vc中不支持attribute)
2.利用全局对象的构造函数会在main函数之前执行的特点
#include <iostream>
using namespace std;
//方法1. 使用attribute关键字,声明constructor和destructor函数
__attribute((constructor))void before_main()
{
printf("%s\\n", __FUNCTION__);
}
__attribute((destructor)) void after_main()
{
printf("%s\\n",__FUNCTION__);
}
//方法二:全局对象的构造函数会在main函数之前执行
class Test{
public:
Test(string s)
{
str.assign(s);
cout << str << ":A构造" <<endl;
}
~Test()
{
cout << str << ":A析构" <<endl;
}
private:
string str;
};
Test test_before_main("global");
int main(int argc, char** argv)
{
cout << "main function." <<endl;
return 0;
}
编译输出结果:
以上是关于C++ --- 写个函数在main函数执行前先运行的主要内容,如果未能解决你的问题,请参考以下文章