头文件重复引用
Q:.h头文件中的ifndef/define/endif 的作用?
A:防止该头文件被重复引用。
说明:
有些头文件重复包含只是增加了编译工作的工作量,不会引起太大的问题,仅仅是编译效率低一些。
有的会引起错误,比如在头文件中定义了全局变量(虽然这种方式不被推荐,但确实是C规范允许的) 。
如果头文件被循环包含,有的编译器会智能处理,和只include一次一样;有的会报错,有的直接死锁,导致编译程序崩溃(这个只有很低级的编译器才会出现在几乎看不到了)。
不管怎样,用ifnde xxx #define xxx或者其他方式避免头文件重复包含,只有好处没有坏处,是一个很好的习惯。