2014-01-12 80 views
0
#include <stdio.h> 
int w=7,v=0; 
shortf(short a, short *b) 
{ 
    a++;(*b)++;w++;v++; 
    printf("13: %d %d %d",a,v,w); return a; 
} 
int main() 
{ 
    return 0; 
} 

這是我的代碼的一部分。它是我大學的一位老師送給我的,但是當我寫下它時,我得到了10多個警告和錯誤,這就是其中之一。 我得到第4行的「返回類型默認爲'int'」警告。爲什麼? 注意:我只允許使用C.當我在int main()之前聲明Shortf函數時,獲取「返回類型默認爲'int'」警告。爲什麼?

+4

你似乎並沒有宣佈對你的函數... –

回答

4

您沒有聲明函數shortf的返回類型。所以編譯器警告你將使用int的默認類型。

你應該總是聲明一個返回值類型。我的猜測是代碼剛被轉錄錯誤。我覺得應該是:

short f(short a, short *b) 
+0

足夠清晰,但代碼應該如何看起來像?我如何聲明返回值類型?我對自己缺乏經驗感到抱歉,我已經使用GUI編寫了多年,轉換速度並不像我想象的那麼快。感謝你們對我的幫助。 – Ripedox

+0

這將在你的教科書中。看到我最新的更新。 f的返回值類型很短。 –

+0

對!我錯過了它們之間的空間,因爲它類似於「Type Name()」,所以我合併成short和f創建一個......可憎的東西?好吧,太棒了,我不知道我的想法在哪裏可以發揮作用。非常感謝! – Ripedox

1

您忘記聲明函數的返回類型shortf。在C89中,如果函數的返回類型被省略,則函數被假定返回值爲int類型(默認)。它應該是

short shortf(short a, short *b) {...} 

在C99和後者中,省略函數的返回類型是非法的。

+0

由於返回類型!很好的答案!儘管我被迫使用谷歌C89,但我猜這是該語言的版本。我學到了新東西^^ – Ripedox

+0

C89,C99,C11都是C標準。 – haccks

相關問題