[英]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 的默認返回類型在省略時是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.