首先,使用该条件编译的目的是:防止该头文件重复引用。 比如,即使在主函数中写了两行#include "head.h”,该文件也只会被包含一次,如果头文件head.h中没有上面的条件编译,则会包含了2次,有可能会报错(是否报错要看具体的编译器,有些编译器不会报错)。 __HEAD_H__ 仅仅是一个标识,只要符合C语言标识命名规则...
29 条件编译+C语言工程文件组织+头文件编写规范是linux自用教程的第37集视频,该合集共计38集,视频收藏或关注UP主,及时了解更多相关视频内容。
这三句话就保证了这个头文件在整个程序中只有一份,因为一旦第一次使用这个头文件的时候,__FCN_H还没有被定义,那么他就会被定义,里面的声明代码也会被使用,如果再由文件使用这个头文件,那么由于__FCN_H已经被定义了,条件编译的条件不满足,所以里面的声明代码也就不会再被使用,反正声明有一份就够了。 头文件的...
此时,第一次 inclue a.h 的时候,先宏定义了一个_A_H , 然后又包含了c.h,又定义了一个_C_H。然后,include b.h的时候,定义了一个_B_H,在b.h在此引用c.h 的时候,此时,_C_H已经存在,不再编译引用。 这样就基本可以理解防止头文件重复包含的原理。 编译时候具体的做法跟上述流程是有区别的,感兴趣的...
头文件中往往会有 #ifndef __LED_H #define __LED_H #endif 用来实现条件编译。如果main.c和key....
简介: 条件编译 #if #endif #if #elif #else #endif #ifdef #if define 的使用方法 引头文件#include<>和#include““的区别 //条件编译:满足条件就编译,不满足就不编译---不等于注释 int main() { //1. #if 常量表达式(可以是1,0,1+2,1-2等)+ #endif #if 1 //#if 1为真,参与编译 #if...
在大型项目中常常使用这种方法防止同一个头文件被重复包含。假如我定义一个test.h如下:ifndef __TEST_H__define __TEST_H__...变量和函数声明 ...endif 那么如果有一个.c文件包含了它两次(大型项目中很常见,可能是因为头文件嵌套包含造成的),加上这个保护之后编译就不会出错了。
C++条件编译在C++中,在进行编译时对源程序中的每一行都要编译,但是有时希望程序中某一部分内容只在满 足一定条件时才进行编译,也就是指定对程序中的 一部分内容进行编译的条件,如果不满足这个条 件,就不编译这部分内容...,这就是条件编译。...条件编译命令常用的有以
(a)条件编译的意义 (b)#if、#else、#elif #endif (c)#ifdef和#ifndef (d)#if 与 defined的结合 (e)条件编译与配置文件(条件编译的真实应用) (4)一些特殊的预编译关键字 与 实际应用 (a)defined (b)#error (b)#line (c)# 与 ## (d)#pragma (5)文件包含 (a)是不是只能包含头文件 (b)...