- 宏中的空格
- 兼容性一例
- 多余的逗号
在语句“#define f (x) ((x)-1)”中,若要定义类似函数f(x)的功能,则f后的空格将会引起错误的替换。正确的写法是“#define f(x) ((x)-1)”。但此空格规则不适合宏调用,如“f (3)”其值仍为2。
为保持与老版本编译器的兼容性,函数定义如:
void func(int arg1,int arg2)
{ ... }
也可写成
void func(arg1,arg2)
int arg1, arg2;
{ ... }
或
void func(arg1,arg2)
int arg1; int arg2;
{ ... }
在C中(包括gcc与MSC),如下写法是错误的:
而应该写成for(int i=0;i<n;i++) { ... }
int i;
for(i=0;i<n;i++) { ... }
在C中,允许初始化列表中出现多余的逗号。例如:
但只能在 末尾 多 一 个。int days[] = {1,2,3,4,5,};