可能重複:
Can you print anything in C++, before entering into the main function?是否有可能性之前調用其他方法/指令的main()運行代碼時
是否有可能運行之前INT主任何其他說明()被調用?
int main(){cout<<"a";}
和在主那個呼叫()有呼叫爲COUT < < 「B」 之前;某處之前。也許這個#定義的事情可以幫助。
可能重複:
Can you print anything in C++, before entering into the main function?是否有可能性之前調用其他方法/指令的main()運行代碼時
是否有可能運行之前INT主任何其他說明()被調用?
int main(){cout<<"a";}
和在主那個呼叫()有呼叫爲COUT < < 「B」 之前;某處之前。也許這個#定義的事情可以幫助。
全局對象在main()運行之前構造。所以,你可以定義一個類,把你的代碼在其構造,然後聲明類的全局實例:)
class temp
{
public:
temp()
{
cout << "before main" << endl;
}
~temp()
{
cout << "after main" << endl;
}
};
temp t;
int main()
{
cout << "in main" << endl;
return 0;
}
全局變量之前主要還是初始化(運行。您可以定義一個返回值的函數,然後調用該函數並將該值賦給其聲明中的全局變量,如@jrok所示。
一些編譯器還支持#pragma startup
語句來執行在啓動一個用戶定義的函數(和相應的#pragma exit
語句關機):
void beforeMain()
{
cout << "before main" << endl;
}
#pragma startup beforeMain
void afterMain()
{
cout << "after main" << endl;
}
#pragma exit afterMain
int main()
{
cout << "in main" << endl;
return 0;
}
只是全局並不能確保在執行main之前創建/初始化該對象。它必須位於與main相同的翻譯單元中,以確保它在main調用之前創建。 –
'布爾f()的{COUT <<「前主」;返回true; } bool dummy = f(); int main(){cout <<「main」; }' – jrok
當然有,谷歌它。 –
是的。事實上,你甚至可以在'main'之前退出程序:) – chris