头文件中的#ifndef

转载 2006年05月19日 13:43:00
千万不要忽略了头件的中的#ifndef,这是一个很关键的东西。比如你有两个C文件,这两个C文件都include了同一个头文件。而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突。

还是把头文件的内容都放在#ifndef和#endif中吧。不管你的头文件会不会被多个文件引用,你都要加上这个。一般格式是这样的:

#ifndef <标识>
#define <标识>

......
......

#endif

<标识>在理论上来说可以是自由命名的,但每个头文件的这个“标识”都应该是唯一的。标识的命名规则一般是头文件名全大写,前后加下划线,并把文件名中的“.”也变成下划线,如:stdio.h

#ifndef _STDIO_H_
#define _STDIO_H_

......

#endif

头文件中的#ifndef #define #endif 作用

头文件中的#ifndef #define #endif 作用,防止头文件被重复包含
  • xuelongyinyue
  • xuelongyinyue
  • 2015年10月11日 10:28
  • 1082

头文件中的 #ifndef/#define/#endif 干什么用

在一个大的软件工程里面,可能会有多个文件同时包含一个头文件,当这些文件编译链接成一个可执行文件时,就会出现大量重定义的错误。在头文件中实用#ifndef #define #endif能避免头文件的重定...
  • wujunbo27
  • wujunbo27
  • 2014年11月08日 19:52
  • 1257

在C语言头文件里我们如何应用#ifndef

举个例子 我在led.h 头文件里这么写 #ifndef __LED_H #define __LED_H ....... ...... #endif 1 这样写是如何完成防止重复定义功能的 2 __...
  • QuanQuanYuanXin
  • QuanQuanYuanXin
  • 2016年11月14日 17:02
  • 839

头文件中#ifndef后面的如何写及什么作用

在头文件中加入#ifndef或#ifdef等宏定义,是为了防止重复声明。         我们知道,头文件一般是用来声明的,会被其他的源文件和头文件include,当被多个文件include的时候就...
  • phenixyf
  • phenixyf
  • 2015年07月14日 10:02
  • 4705

#ifndef #define 中的头文件名为什么是__xxx_h

这样定义是为了避免重复定义。重复声明可以,但是重复定义是不可以的。 重复声明只要名称完全相同即可。但是重复定义会出现编译错误的,即使同名也不可以。 多次包含可能会引来重复定义。比如a.h中包含了b.h...
  • whxngb
  • whxngb
  • 2015年12月30日 11:26
  • 840

#ifndef/#define/#endif使用详解

想必很多人都看过“头文件中的 #ifndef/#define/#endif 防止该头文件被重复引用”。但是是否能理解“被重复引用”是什么意思?是不能在不同的两个文件中使用include来包含这个头文件...
  • abc5382334
  • abc5382334
  • 2014年01月09日 22:22
  • 74476

[编译预处理系列1]用#ifndef/#define#endif来防止头文件被引用(例子)

为了体会用#ifndef/#define#endif来防止头文件被引用(例子)这一作用,写了个例子来做试验////////////////////////////////////head1.h  be...
  • jiangredsheep
  • jiangredsheep
  • 2005年06月29日 15:48
  • 2325

#define #if #ifdef #ifndef 作用和区别

#define #define 用来进行定义 #define kTabBar_Height 49.0f #define kString @"哈哈哈"1212 #if #if ...
  • st646889325
  • st646889325
  • 2016年12月07日 09:11
  • 2067

#ifndef:避免头文件的重复包含和编译

ifndef是”if not defined”的简写,是宏定义的一种,它是可以根据是否已经定义了一个变量来进行分支选择,一般用于调试等等。实际上确切的说这应该是预处理功能中三种(宏定义,文件包含和条件...
  • sinat_29634485
  • sinat_29634485
  • 2016年04月02日 14:50
  • 381

#define#ifndef#endf 防止头文件重复包含,心得,供大家参考

#idndef 宏名 #define 宏名 ********* ********* #endif
  • DZRYWYBL
  • DZRYWYBL
  • 2015年11月09日 22:41
  • 533
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:头文件中的#ifndef
举报原因:
原因补充:

(最多只允许输入30个字)