C语言标准中,对没有声明的函数默认为int类型返回,比如下面的代码,注释部分可省略: #include // int max(int x,int y); int main( ) { int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); printf("max=%d",c); return 0; } int max(int x,int y) { int z; if(x>y)z=x; else z=y; return(z); } 而ANSI C++更严格些,要求在函数调用前必须对所调用的函数做函数原型声明,上面的注释部分加上则会产生错误 而VC编译器本身能根据文件的后缀名来识别应该采用的是ANSI C(.c)或者ANSI C++(.cpp)标准,因此上述代码使用的 文件名以.c后缀能正常通过编译,而.cpp后缀时则将出错

评论