这是两种C语言标准,不同的编译器可能支持不一样。
C89是1989年ANSI制定、1990发布(又称C90),C99是在C89基础上改进的,1999年发布。
说2个最明显区别:
1) 变量声明
C89,变量必须在作用域开头:void func() {
int a; // 合法
a = 10;
int b; // 非法(C89不允许在语句后声明变量)
}
C90,[size=16.002px]变量可在任意位置声明:
void func() {
int a = 10;
printf("%d", a);
int b = 20; // 合法(C99允许)
}
2)注释
C89只支持"/* ... */",C99添加了对"// ..."的支持
|