2014-11-04 115 views
2

對於大學,我需要使用提供的模板創建一個基本桌面計算器。我已經成功地得到大部分完成,但有第9行(iScreenSetup();此錯誤消息:警告]數據定義沒有類型或存儲類別[默認情況下啓用]

「【警告】數據定義沒有類型或存儲類[默認啓用]」

任何提示?

#include "stdio.h" 
#include "conio.h" 
#include "stdlib.h" 
#include "string.h" 



/* Prototypes */ 
iScreenSetup(); 
iDataCapture(); 
iProcessData(); 
iReport(); 
iExit(); 

/* Declare and initialise global variables */ 
float fNum1 = 0.0; 
float fNum2 = 0.0; 
float fAns = 0.0; 
int iOption = 0; 



int main(void) 
{ 
/* Set up the screen */ 
iScreenSetup(); 
/* Prompt the user and capture the data */ 
iDataCapture(); 
/* Process the data */ 
iProcessData(); 
/* Generate the report */ 
iReport(); 
/* Exit routine */ 
iExit(); 
} /* End of main */ 
+0

您尚未在函數聲明中指定返回類型。默認情況下,它將採用'int'。例如。 ''iScreenSetup();'應該是' iScreenSetup();'例如'int iScreenSetup();'。 – user1336087 2014-11-04 17:28:16

+0

這與[隱式int](http://stackoverflow.com/q/26488502/1708801),在C89中如果你沒有指定類型是默認爲'int',雖然在C99之後這已不見了[許多編譯器仍然支持它](http://stackoverflow.com/q/26529235/1708801)。 – 2014-11-04 17:29:08

+0

由於你的函數名從'i'開始,它應該返回'int'。例如。 'int iScreenSetup();' – user1336087 2014-11-04 17:37:16

回答

7

你的原型是缺少返回類型。如果要返回任何內容,這將是void

/* Prototypes */ 
void iScreenSetup(); 
+0

非常感謝!我正在破壞我的大腦,試圖找出答案。 – 2014-11-04 17:49:09

+0

@ Fiery-Skyline:請注意,這仍然不是原型聲明(如評論所示),而是(過時的)舊式聲明。原型將是例如'void iScreenSetup(void)'。使用舊式版本(以及其他問題),編譯器可能不會告訴您何時調用錯誤數量的參數(或使用錯誤類型的參數)。 – mafso 2014-11-04 17:54:37

相關問題