在C++中,main可以由函數指針定義嗎?例如:通過函數指針定義「main」
int f(int, char**) {
return 0;
}
int (*main)(int, char**) = &f;
此代碼編譯和鏈接正確,但在運行時觸發分段錯誤。我相信這可能是因爲它試圖執行函數指針的值作爲代碼。另外,如果它在純C++中是不可能的,那麼它是否可以通過gcc的非標準特性(可能以某種方式改變導出的符號的類型)來實現。
最後,如果使用gcc指令無法實現,可以使用自定義鏈接腳本來完成嗎?
爲什麼你需要這樣的修改?也許問題可以用較少的努力解決? – Spook
這不是完全實用的,它主要是出於興趣。我想到的應用程序涉及模板。 – jleahy
爲什麼你用'C'和'C++'標記這個,並且在實際問題中從來不問'C'?你爲什麼要弄亂函數指針?你爲什麼討厭'主'? *爲什麼?!* – stefan