簡體   English   中英

C&C ++中main的區別是什么

[英]What is the difference between main in C & C++

C程序中的main和C ++程序之間有什么區別?

以外

  1. return語句(C中默認為1,C ++中為0)
  2. 句法:

     int main() { /* … */ } int main(int argc, char* argv[]) { /* … */ } int main() , void main() ,etc ... 

主要是:

  1. C程序和C ++程序中的main之間的區別

  2. 根據ISO標准,C ++ 98,C ++ 03和C ++ 0x之間有什么區別嗎? 即程序的入口點(程序啟動實現)等。

在現代C和現代C ++中:

  • main總是int main()int main(int, char*[])
  • 在C89中,您必須明確地從main return
  • 在C99和C ++中,如果未顯式return 0 ,則隱式return 0

[ (我現在已經檢查了C99標准並編輯了這一段。) ]對於第二個問題,在C99中你必須正好具備兩個main功能之一。 在C ++中,標准表示如果程序具有返回intmain函數,並且每個符合要求的實現必須接受兩個列出的版本作為入口點(對於“托管程序”,例如不適用於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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM