在C语言头文件里我们如何应用#ifndef
来源:互联网 发布:ubuntu创建文件夹 编辑:程序博客网 时间:2024/05/16 16:56
举个例子 我在led.h 头文件里这么写#ifndef __LED_H#define __LED_H.............#endif1 这样写是如何完成防止重复定义功能的2 __LED_H 这个宏定义我可以随便命名吗,还是这个#define后面的名字和 头文件led.h 得名字村子某种命名约束3 在应用头文件中 ifdef 是如何公工作的
答案
编译器读到#ifndef __LED_H这一行时会检查当前__LED_H这个字符是否已经被宏定义了,如果是,则忽略其下文直到匹配的#endif;如果没有被宏定义,则继续编译其下文。这样当这个头文件第一次被#include时,编译器发现_LED_H这个字符未被宏定义,则编译余下的内容,第一句就将_LED_H这个字符宏定义,则以后#include时,此头文件就不会再被编译了。
__LED_H这个名字可以任意取(其用来编译时区分是否是第一次被#include),但不能跟别的头文件中的定义重复。
!ifdef __LED_H 的意义跟上面的相同。ifdef表示如果定义了某宏就编译下文直到匹配的#endif,跟ifndef类似的条件编译语句(逻辑正好相反)
ifdef这个宏定义可以防止重复定义
但是如何完成的呢
1 我们在头文件。h中写了这句话,#ifndef __LED_H#define __LED_H.............#endif如果有多个文件引用了这个.h 文件这多个文件又包含在同一个文件下。这样我们的ifdef就起作用了。
0 0
- 在C语言头文件里我们如何应用#ifndef
- C语言头文件里,一开头的宏定义 #ifndef 的主要作用
- 在C语言头文件中,#ifndef、#define、#endif的作用?
- 在C语言头文件里“定义”全局变量的方法
- 单片机C语言头文件 #ifndef/#define/#endif使用详解
- C 语言头文件里定义变量
- 如何在eclipse上添加c语言工程头文件
- #ifdef #ifndef extern "c"与头文件
- #ifndef 在头文件中的作用
- #ifndef 在头文件中的作用
- #ifndef 在头文件中的作用
- c语言中 bool 这个声明在哪个头文件里?
- C语言编写头文件及应用
- c语言List头文件和应用
- C语言头文件避免重复包含、#pragma once和#ifndef的区别
- C语言头文件避免重复包含、#pragma once和#ifndef的区别
- C语言里 头文件 和 源文件 作用是什么?
- C语言里 头文件 和 源文件 作用是什么?
- android ndk优化方向
- 对于viewpager的调用时,状态保存问题
- amlogic rk tvbox 电视盒 定制化开发(一) 开机logo 定制
- oracle主键自增长
- shell编程——if语句 if -z -n -f -eq -ne -lt
- 在C语言头文件里我们如何应用#ifndef
- Jackson的简单使用
- NOIP模拟题 [递推][优化][dp][线段树][离散]
- mysql备份的导入
- 仿淘宝ActionBar渐变Scrollview的onScrollChanged方法调用
- xml读取异常
- 如何设计出令人惊叹的关卡:来自策划、美术与程序的标准
- 设计模式笔试题
- 26. Remove Duplicates from Sorted Array