请教头文件ifnef/define/endif是做什么的?

来源:百度知道 编辑:UC知道 时间:2024/06/30 00:49:17

这里有详细课程:
http://comapp.ecjtu.jx.cn/list.php?tid=54

以下文件在"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++程序所要完成的功能,而是对于编译过程给出指导,其功能有编译预处理程序来完成。C++的编译预处理命令主要有:文件包含命令(#include),宏定义(#define)以及条件编译命令。下面分别对其做介绍:

*文件包含命令(#include)
在C++中,一个模块通常有两个源文件构成,一个是.h文件,用于存放模块的接口定义;另一个是.cpp文件,用于存放模块的实现。在一个模块中要用到另一个模块中定义的程序实体时,需要在前者的.cpp文件中用文件包含命令(#include)把后者的.h文件包含进来。其格式为:#include<文件名>或#include"文件名"。文件包含命令的含义是:在编译前,用命令中的文件名所指定的文件内容替换该命令,<>表示在系统指定的目录下寻找该文件,""表示先在包含#include命令的文件目录下寻找,若找不到在到系统指定的目录下寻找。
<