关于宏的一点思考

来源:互联网 发布:java游戏地图载入 编辑:程序博客网 时间:2024/04/29 21:28

#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,就不会做了,从而出现问题。