语言陷阱:C/C++的宏替换

C/C++的宏非常不错,非常强大,我自己用的也非常顺手。自己的代码刚开始写的时候其实到处都是宏,然后根据需要,切换为C++,切换为Java,一会排成一字,一会排成人字。但使用却必须要小心些了,比如下面的语句:

       #define abs(x) (x)<0?0-(x):(x)
       #define rand(x) abs(rand()%x)
       

继续阅读语言陷阱:C/C++的宏替换