某些情况下咱们可能需要让某个函数在主函数前被执行, 对于熟悉编译器的码农来说可以用__attribute__((constructor))
修饰函数使其在初始化阶段执行, 但是对于不常用__attribute__
者来说可能会略显奇怪. 作为替代, 您会在教科书中发现全局变量的初始化是在主函数前执行的.
那么我们只需要让一个函数在全局变量初始化的时候被调用一下就行了
#include<iostream>
using namespace std;
int pre_main(){
cout << "pre_main" << endl;
return 114514;
}
// 以函数返回值初始化全局变量
int something = pre_main();
int main(int argc, char* argv[]){
cout << "main" << endl;
cout << something << endl;
return 0;
}
输出
pre_main
main
114514