[英]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.