C89 和 C99 是两套不同的C语言标准,C99 是 C89 的升级版,我们已在《C语言的三套标准:C89、C99和C11》中进行了讲解。请看下面的代码:
#include <stdio.h>
int main(){
int a;
scanf("%d", &a);
int b;
scanf("%d", &b);
int c = a + b;
printf("%d\n", c);
return 0;
}
将代码保存到源文件main.c,那么它可以在 GCC、Xcode 下编译通过,但在 VC/VS 下会报错。GCC、Xcode 对 C99 的支持非常好,可以在函数的任意位置定义变量;但 VC/VS 对 C99 的支持寥寥无几,必须在函数开头定义好所有变量。main.cpp,那么它在 GCC、Xcode、VC/VS 下都可以编译通过。这是因为 C++ 取消了原来的限制,变量只要在使用之前定义好即可,不强制必须在函数开头定义所有变量。
注意源文件的后缀,取消限制带来的另外一个好处是,可以在 for 循环的控制语句中定义变量,请看下面的例子:.c是C语言代码,.cpp是C++代码,它们的编译方式不同。
#include <iostream>
using namespace std;
int sum(int n){
int total = 0;
//在for循环的条件语句内部定义变量i
for(int i=1; i<=n ;i++){
total += i;
}
return total;
}
int main(){
cout<<"Input a interge: ";
int n;
cin>>n;
cout<<"Total: "<<sum(n)<<endl;
return 0;
}
运行结果:
版权说明:Copyright © 广州松河信息科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州松河信息科技有限公司 版权所有