“哨兵”的强大作用
Tuesday, August 9th, 2011看过开源程序源代码的同学会发现里面有很多预编译选项,因此我一直比较相信高手都是精通预编译的。
之前写过几个程序,在加了几个功能后狂报redefinition错误。经过高手们的指正,发现是因为自己重复include了相同的头文件。
当然,代码里面的提现不是直接include两次相同的头文件,而是include了a.h和b.h,同时b.h又include了a.h。
在头文件里面include其他的头文件,这个代码风格是相当不好的,我检讨。不过改代码又显得有些麻烦。于是兄弟们推荐了”哨兵”。
把每个头文件都修改成
#ifndef _XXX_H
#define _XXX_H
code
#endif
再编译一次,发现没有问题了,又离高手近了一步。