看了网上别人的文章,以前对ifndef的含义一直有些困惑。现在终于明白了。
以下文件在"os_cpu.h"中。
#ifndef __OS_CPU_H__
#define __OS_CPU_H__
/*
中间有许多定义啦声明啦!;;
*/
#endif /*__OS_CPU_H__*/
这样,在编译阶段(ifndef是在编译阶段起作用滴!)假设有两个文件同时include了这个文件(os_cpu.h),这两个文件如果一个先编译了,那么__OS_CPU_H__就被定义了。当编译到第二个文件的时候,那么在开始的判断(ifnef)就会自动跳出os_cpu.h这个文件的重复编译。这样就避免了重复编译文件。。
本文解释了C/C++预编译指令ifndef的作用及其实现原理。通过一个实际例子(os_cpu.h)说明了ifndef如何避免头文件被重复包含,从而防止编译错误的发生。
1万+

被折叠的 条评论
为什么被折叠?



