[英]What is the difference between main in C & C++
C程序中的main
和C ++程序之間有什么區別?
以外
句法:
int main() { /* … */ } int main(int argc, char* argv[]) { /* … */ } int main() , void main() ,etc ...
主要是:
C程序和C ++程序中的main之間的區別
根據ISO標准,C ++ 98,C ++ 03和C ++ 0x之間有什么區別嗎? 即程序的入口點(程序啟動實現)等。
在現代C和現代C ++中:
main
總是int main()
或int main(int, char*[])
。 return
。 return 0
,則隱式return 0
。 [ (我現在已經檢查了C99標准並編輯了這一段。) ]對於第二個問題,在C99中你必須正好具備兩個main
功能之一。 在C ++中,標准表示如果程序具有返回int
的main
函數,並且每個符合要求的實現必須接受兩個列出的版本作為入口點(對於“托管程序”,例如不適用於Linux),程序就是格式良好的。核心); 見3.6.1。 [/ edit]據我所知, 調用約定也不是標准的一部分。
我不明白你關於內存的問題,但要注意C99和C ++ 03都沒有任何東西,只有一個基本的內存模型,而新的C ++ 0x顯式添加了一個內存模型,以便能夠定義良好的並發和原子操作。
在C中,與C ++相反, main
可以遞歸調用。
/* valid C */
#include <stdio.h>
int main(int argc, char **argv) {
putchar(argc ? '.' : '\n');
if (argc == 0) return 0;
return main(argc - 1, NULL);
}
C99和C ++用於托管環境中main
的定義。 允許有兩個功能接口
int main(void);
int main(int, char*[]);
兩種語言都允許從main
return
隱式返回而不return
語句,在這種情況下,返回值EXIT_SUCCESS
返回給調用者。
編輯:程序啟動實現有什么區別c ++ 98,C ++ 03,C +++ 0x main等有什么區別.........
不是main
。 然而,在使用C與C ++調用main 之前發生的事情存在巨大差異。 在C ++中,具有static
存儲的對象通常在進入main
之前初始化。
注意:
允許實現在main
中間執行靜態數據的動態初始化,但必須在第一次引用該靜態數據之前執行此操作。 我從未遇到過利用這種靈活性的實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.