2015-08-08 32 views
-3

我試圖谷歌它,我發現C中的main()具有返回類型'int'。如果它是'無效',則在內部將其視爲'int'。 'float'或'double'是不允許的。但是當我在代碼塊中寫這個時:在C中如何以及爲什麼float main()工作?

double main() 
{ 
printf("hello"); 
return 0; 
} 

它成功執行。 我想知道這是可能的。

+2

使用除int之外的返回類型都是未定義的行爲。而已。 –

+1

「它成功執行」但程序_return_預期的'0.0'?簡單地執行代碼並不能證明這一點。你需要一種方法來測試程序的返回值,以便知道它「成功執行」。 – chux

+0

即使程序編譯,編譯器也不會發出任何警告,並返回'0.0',但這並不意味着它是一個有效的C程序。 – emlai

回答

1

C標準n1124說

§ 5.1.2.2.1計劃啓動

稱爲在程序啓動的功能被命名爲主力。 實現聲明此函數沒有原型。它應爲 ,定義爲返回類型爲int且不帶參數:int main(void) { /* ... */ }或帶有兩個參數(在此稱爲 argc和argv,儘管可以使用任何名稱,因爲它們是 函數的本地函數,其中它們被聲明):

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

或等同物; 9),或在一些其它實現定義 方式。

因此,它是不確定的了什麼事,你的程序,你不服從它應該遵守的規則。

相關問題