簡體   English   中英

一個為Linux編寫的C函數沒有返回值,C編譯器如何處理呢?

[英]no return value from one C function written for linux, how does c compiler deal with that?

我得到一個程序(最初是為linux編寫的)。 我無法理解某些函​​數的語法。 這些函數沒有返回值類型。 我舉一個例子

add_one_point(xx,yy,zz,index)
  float xx,yy,zz;
  int index;
{
 //the implementation 
}

在某些函數中,實現不返回任何值,但是某些實現確實返回值。 這是有效的C代碼嗎? 如果是這樣,C編譯器如何處理呢?

提前致謝! 跑步

較舊的C版本允許省略返回類型,將其默認為int

C99不再允許它,因此,如果在C99模式下編譯,它將失敗。

您應該聲明一個不返回任何值的函數為return void ,無論如何都應指定返回類型。 您的編譯器可能允許您編譯未指定返回值的函數(它將默認為int,這就是為什么該代碼可能/一直在工作的原因),但是現代的編譯器至少會發出警告。

此外,正如其他人已經注意到的那樣,輸入類型也以不尋常的方式指定(未經驗證,我將其稱為非標准兼容)

暫無
暫無

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

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