1 #include<iostream> 2 using namespace std; 3 4 5 extern int i; 6 extern float f(float a); 7 float b; 8 float f(float a){ 9 return a+1.0; 10 } 11 int i; 12 int h(int x) 13 { 14 return x*i; 15 } 16 17 main() 18 { 19 b=1.0; 20 i=2; 21 f(b); 22 h(i); 23 cout<<f(b)<<":"<<h(i)<<endl; 24 system("pause"); 25 }
這段代碼源於《C++編程思想》一書的代碼
錯誤詳情: error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int e:\imfcapplications\002_01\002_01\_01.cpp 18 1 002_01
原因:C中允許未聲明的函數返回int類型,C++中不允許。同時,為了兼容早期的C語言,因為第一個版本的C中內置類型只有int(char,double,float,bool都是后來加入的),既然只有一種類型,那么不寫就默認int.C99標准中要求,對於這種寫法至少給出編譯警告.不建議采用這種老的書寫方式.
參考:http://blog.csdn.net/w343051232/article/details/8152097