0) 引论
程序放下了很久,近来因各种原因需要拾起来,要靠编程混口饭吃,所以在做一些编程学习以及练习,下面记录一些编程过程中遇到的错误,以警戒自己。
以后碰到问题会时常更新这一篇。
1)宏定义
这个问题发生在编写回溯算法的八皇后问题上,当时对绝对值求取的定义出现了失误,导致了严重的Bug。
当时错误的定义为:
#define abs(x) (x)>=0?(x):-(x)
正确的定义方式应该是:
#define abs(x) (((x)>=0)?(x):-(x))
虽然之前在读C Traps and Pitfalls时也已经注意到了这个问题,但是到自己写的时候还是出了错误。
--------2013.12.18