#define A(a,b) a[b];
int main()
{
int a[10] = {0};
int b = 3;
//错误写法
A(a,b-1) = 12;
//正确写法
A(a,(b-1)) = 12;
}
宏一定要完全确保数据的“独立性”,对于错误写法,很可能编译器先读取了b,然后遇到了-,又遇到了1,就不会做了,从而出现问题。
#define A(a,b) a[b];
int main()
{
int a[10] = {0};
int b = 3;
//错误写法
A(a,b-1) = 12;
//正确写法
A(a,(b-1)) = 12;
}
宏一定要完全确保数据的“独立性”,对于错误写法,很可能编译器先读取了b,然后遇到了-,又遇到了1,就不会做了,从而出现问题。