C语言——#ifndef
来源:互联网 发布:运动软件 佳明 编辑:程序博客网 时间:2024/06/05 03:03
#ifndef
解释:if not defined
类型:条件编译(预处理共分:宏定义、文件包含和条件编译3种)
意义:可根据是否已定义一个变量来进行分支选择,一般用于调试。
作用:
1、防止头文件的重复包含和编译
2、便于程序调试
使用方法:
#ifndef x /*先测试x是否被宏定义过*/#define x程序段1 /*若x没有被宏定义过,定义x,并编译程序段1*/#else程序段2 /*若x已定义,则编译程序段2,忽略程序段1*/#endif /*结束if语句*/
注意:#ifndef的效果是防止一个源文件两次包含头一个头文件。
若有一个C源文件,它包含了很多头文件,如:A头文件和B头文件,而头文件B又包含了头文件A。则最终的效果是:该源文件包含了2次A头文件。若在头文件A里定义了结果体或类类型,则编译时会报大量的重复定义错误。
如:要编写头文件test.h
在头文件开头写两行:
#ifndef __TEST_H
#define __TEST_H
文件结尾写上:
#endif
即:
#ifndef __TEST_H#define __TEST_Htest代码段#endif
这样一个工程文件里同时包含了2个test.h,也不会出现重定义的错误。
分析:
第一次编译,__TEST_H未被定义,定义__TEST_H.
第二次编译,__TEST_H已被定义,不再宏定义__TEST_H,也不执行test代码段。
阅读全文
0 0
- C语言——#ifndef
- C语言之详解#ifdef #ifndef
- C语言#ifdef,#ifndef,#endif,#define详解
- C++—— #ifndef 和 #pragma once 区别
- c语言中的#ifndef、#def、#endif等宏是什么意思
- C语言学习之详解#ifndef预编译
- C语言学习之详解#ifndef预编译
- c语言中的#ifndef、#def、#endif等宏是什么意思 .
- C语言中的#ifndef、#def、#endif等宏
- C语言中的#ifndef、#def、#endif等宏(转)
- C语言拾遗:ifndef/define/endif 与 #pragma once
- c语言中的#ifndef、#def、#endif等宏是什么意思
- c语言中的#ifndef、#def、#endif等宏是什么意思
- C语言学习之详解#ifndef预编译
- 浅谈C语言中"#ifndef/#define/#endif"的作用
- 在C语言头文件里我们如何应用#ifndef
- C语言的条件编译 #if #elif #endif #ifndef #define
- 单片机C语言头文件 #ifndef/#define/#endif使用详解
- 基于Faster-rcnn及FCN的中文OCR文本定位
- 基于GPS的城市管道精确定位系统的单片机控制
- 触发器里面before和after的区别
- 第四章 “字符串和多维数组”翻转学习任务
- Python3:《机器学习实战》之支持向量机(4)核函数及其实现
- C语言——#ifndef
- 第二次作业,模拟CPU与硬盘容量
- bzoj1711 [Usaco2007 Open]Dining吃饭
- 配置Caffe遇到hdf5.h的错误:No such file or directory
- Linux中sysinfo的用法
- ubuntu16.04下快速配置jdk环境的方法
- 给 Android 开发者的 RxJava 详解
- java内存模型中的happens-before
- DOS命令