#ifndef 在头文件中的作用

#ifndef 

在头文件中的作用

 

在一个大的软件工程里面,

可能会有多个文件同时包含一个头文件,

当这些文件编译链接成

一个可执行文件时

 

,就会出现大量

重定义

的错误。在头文件中实用

#ifndef #define #endif

能避免头文件的重

定义。

 

方法:例如要编写头文件

test.h 

在头文件开头写上两行:

 

#ifdef _TEST_H 

#define _TEST_H//

一般是文件名的大写

 

头文件结尾写上一行:

 

#endif 

这样一个工程文件里同时包含两个

test.h

时,就不会出现重定义的错误了。

 

分析:当第一次包含

test.h

时,由于没有定义

_TEST_H

,条件为真,这样就会包含(执行)

#ifndef _TEST_H

 

#endif

之间的代码,

当第二次包含

test.h

时前面一次已经定义了

_TEST_H

条件为假,

#ifndef 

_TEST_H

 

#endif

之间的代码也就不会再次被包含,这样就避免了重定义了。

 

#ifndef __74HC595_H__ 

#define __74HC595_H__ 

 

 

#endif 

#ifndef _optimizedvector_h // if not define _optimizedvector_h 

#define _optimizedvector_h // then define _optimizedvector_h 

通俗点就是如果没定义

_optimizedvector_h

,那就定义

_optimizedvector_h

,防止重复编译

 

头文件中的

#ifndef

这是一个很关键的东西。

比如你有两个

C

文件,

这两个

C

文件都

include

了同一个头文件。而编

 

译时,这两个

C

文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突。

 

还是把头文件的内容都放在

#ifndef

#endif

中吧。不管你的头文件会不会被多个文件引

用,你都要加上这个。一般

 

格式是这样的:

 

 

#ifndef <

标识

>  

#define <

标识

>  

......  

#endif 

 

<

标识

>

在理论上来说可以是自由命名的,

但每个头文件的这个

“标识”

都应该是唯一的。标

识的命名规则一般是头

 

文件名全大写,前后加下划线,并把文件名中的“

.

”也变成下划线,

 

如:

stdio.h  

#ifndef _STDIO_H_  

#define _STDIO_H_  

......  

#endif 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值