最近看到這篇微博,內容如下:
- 在您的 C 程式中,您只能有一個“main”函式,無論它被稱為“main”還是其他。如果您使用 IPA,當檢測到多個“主”函式時,IPA 將終止并發出錯誤訊息。
我是否正確理解main名稱(或明確定義為替代int main()入口點的其他名稱)是重要部分,例如,我可以在同一個程式中擁有int main(int argc, char **argv) 和 int sub_main(int argc, char **argv)?
如果沒有,并且如果有main作為函式名稱和/或(int argc, char **argv)引數的一部分,我可能會遇到問題,更改引數的位置是否int sub_main(char **argv, int argc)會有所不同?
到目前為止,我還沒有遇到任何問題,因此可以假設int main(int argc, char **argv)并且int sub_main(int argc, char **argv)可以愉快地共存。不過,肯定知道可能會很方便。
uj5u.com熱心網友回復:
根據 C 標準,您的代碼中必須只有一個main函式,這就是執行的起點。C僅定義以下宣告:
int main(void)int main(int, char **)(或等價物,比如說char *argv[])
也可能有(與任何C 函式一樣,在所有檔案中只有一個this 定義(但可能有任意數量的宣告)。
sub_main()或任何其他變體是不是正好 main()是完全合法的。函式的名稱和型別是不同的——名稱是唯一的,型別不需要。
所以對void fn(void);,fn是“名”(也稱為“標識”),而void (void)為(不帶引數和回傳任何功能)的型別。
當您想確切知道時,請務必詢問其他人,就像您在這里所做的那樣,但也一定要在重要的地方將人們的答案與C 標準相關聯。
uj5u.com熱心網友回復:
只有函式“main”的確切名稱對于編譯器知道程式從哪里開始很重要。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/367265.html
上一篇:內核終端中的游標
