0
我正在使用MVisualC++ 2010,當我嘗試取消定義「main」時,沒有結果,控制檯像往常一樣啓動。我期待一些缺少入口點錯誤或什麼的。 這是爲什麼?#undef主沒有給出結果
#undef main
int main()
{
}
我正在使用MVisualC++ 2010,當我嘗試取消定義「main」時,沒有結果,控制檯像往常一樣啓動。我期待一些缺少入口點錯誤或什麼的。 這是爲什麼?#undef主沒有給出結果
#undef main
int main()
{
}
主要不是#define
擺在首位。您的#undef
根本不會改變。
#define foo bar
告訴預處理器「用條替換foo的所有出現」。 #undef foo
告訴預處理器「富沒有特殊的意義了,離開它,因爲是」
如果你想有一個鏈接錯誤,請重命名main
到例如main2
,或者例如這樣的:
void foo();
int main() {
foo();
}
這告訴一個真實存在的foo
功能(但它不是什麼)編譯器。 main
試圖使用它,所以鏈接器將無法找到它時會報錯。
因此,如果我在使用SDL時使用undef main,那麼我不使用標準庫,只是使用SDL中實現的一些東西? – Neomex 2011-03-05 09:55:37
如果有人告訴您不要定義main,則表示「不創建主要功能」。術語define與'#define'不同,它的意思是「創建這個函數/變量」 – Erik 2011-03-05 09:58:01
在SDL上,我不使用這個,但我相信它的作用是使用#define來「重命名」main 。在這種情況下,您的#undef將取消重命名,而SDL自己的'main'不會被調用。 – Erik 2011-03-05 10:01:14