簡體   English   中英

如何在 C 中編譯和運行 `main;`

[英]How to compile and run `main;` in C

main;

這是C中可以編譯的最小程序。編譯警告( gcc ):

test.c:1:1: warning: type defaults to ‘int’ in declaration of ‘main’ [-Wimplicit-int]
test.c:1:1: warning: ‘main’ is usually a function [-Wmain]

從句法上講,我想了解它的含義,即:

  • 為什么在聲明 function 時使用分號?
  • 為什么缺少的括號和花括號是合法的?

我知道 function 的默認返回類型在省略時是int 我還聽說過在main之前調用的_start function 。 這意味着它正在調用尚未定義的 function(?)。

為什么可執行文件在運行時會出現段錯誤?

因為您沒有為main指定類型,所以編譯器默認為int類型。 不是 function 返回一個int ,而是一個int 從句法的角度來看這是合法的,因為您也可以使用myvar; 在您的代碼中也將被聲明為int

但是因為main是特殊的,所以你會收到第二個警告。 它讓您知道您定義main的方式與通常定義的方式不同。

因此,當您編譯此程序並嘗試運行它時,它期望main成為 function 的開始,而實際上它只是一個int變量。 這就是導致段錯誤的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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