c语言中的 #ifndef/#define/#endif的作用
在c语言中,头文件中的加入 #ifndef #define #endif 目的防止该头文件被重复引用
其实“被重复引用”是指一个头文件在同一个c文件中被include了多次,这种错误是由于include嵌套造成的。比如在a.h文件#include "c.h" 而此时b.cpp文件包含#include "a.h" 和#include "c.h"此时就会造成c.h重复引用
头文件被重复引用引起的后果:
有些头文件重复引用只是增加了编译工作的工作量,不会引起太大的问题,仅仅是编译效率低一些,但是对于大工程而言编译效率低下那将是一件多么痛苦的事情。
有些头文件重复包含,会引起错误,比如在头文件中定义了全局变量(虽然这种方式不被推荐,但确实是C规范允许的)这种会引起重复定义。
使用格式
#ifndef A_H (if not 定义 a.h)
#define A_H (引入 a.h)
#include <xxx.h>
#include "xxx.h"
void func(int a);
#endif A_H
c语言中的 #ifndef/#define/#endif的作用相关推荐
- 每日一题(12)—— .h头文件中ifndef/define/endif的作用
.h头文件中ifndef/define/endif的作用? 分析: 防止头文件被重复包含. #ifndef _TEST_H_ #define _TEST_H_/* test.h */#endif / ...
- #ifndef #define #endif的作用
#ifndef #define #endif的作用 在一个大的软件工程里面,可能会有多个文件同时包含一个头文件.当这些文件编译链接成一个可执行文件时,就会出现大量重定义的错误. 在头文件中实用#ifn ...
- 【C/C++】ifndef/define/endif的作用
参考资料来源于网上,还未经本人实验证明. 1 作用 防止头文件被重复包含和编译. 头文件重复包含会增大程序大小,重复编译增加编译时间. 解释:#ifndef起到的效果是防止一个源文件多次包含同 ...
- #ifndef, #define, #endif的作用
目录 作用 示例 作用 #ifndef 它是if not define 的简写,是宏定义的一种,实际上确切的说,这应该是预处理功能三种(宏定义.文件包含.条件编译)中的一种--条件编译. 在c语言中, ...
- C++中#ifndef/#define/#endif使用详解
想必很多人都看过"头文件中的 #ifndef/#define/#endif 防止该头文件被重复引用".但是是否能理解"被重复引用"是什么意思?是不能在不同的两个 ...
- ifndef/define/endif——主要目的是防止头文件的重复包含和编译
原文:http://www.jb51.net/article/100939.htm 原文:https://blog.csdn.net/abc5382334/article/details/180527 ...
- 头文件为什么要加#ifndef #define #endif
一 #ifndef 在头文件中的作用 一个大的软件工程里有多个文件同时包含一个头文件,当这些文件编译链接成一个可执行文件时,就会出现大量"重定义"的错误.这时在头文件中使用#ifn ...
- #ifndef/#define/#endif
#ifndef/#define/#endif 头文件中的 #ifndef/#define/#endif 防止该头文件被重复引用 "被重复引用"是指一个头文件在同一个cpp文件中被i ...
- #ifndef.#define, #endif 的用法
文件中的#ifndef.#define, #endif 很关键,是为了避免多重包含,比如如果两个C文件同时包含同一头文件,那么就会出现问题,所以使用这种方法可以有效避免这种情况. 一般用法: 以add ...
- #ifndef/#define/#endif 防止该头文件被重复引用
转载自:http://blog.csdn.net/abc5382334/article/details/18052757 想必很多人都看过"头文件中的 #ifndef/#defi ...
最新文章
- CT片居然可以这么玩:用头部CT断层扫描片复原三维头像
- android 重叠view 重叠布局,按比例布局
- 以二进制的形式保存在数据库中
- 睡觉前后爆笑的情侣小两口~媳妇不要闹了~
- oracle sql取查询结果第一条,SQL获取第一条记录的方法(sqlserver、oracle、mysql数据库)...
- 面向对象3-析构函数和私有属性
- 职场小白靠这三招PDF技巧逆袭为职场达人
- 趁老王不在,和隔壁邻居斗斗地主,比比大小
- 如何成为迅雷的高级玩家
- 编译原理: Subset Construction 子集构造法(幂集构造)(NFA转DFA)
- 西恩科技更新招股书:IPO前大手笔分红“套现”, 赵志安为实控人
- 深入浅出理解数据分析系列之:Python安装Excel文档库openpyxl和Pycharm为项目安装Excel文档库openpyxl
- Android自定义view-电子签名画板
- mysql 1264_关于MySQL的1264错误处理及sql_mode设置
- 应用程序正常初始化0xc0000135失败的解决办法
- 二级考python还是office_大学生考二级为什么考office比C语言科目会更有价值
- 建仓价 持仓价 平仓价
- AcWing 0x00. 语法基础课【Python3】版题解-顺序/判断/循环语句
- Oracle数据库基础(还在学java吗?不如来看看oracle)
- 每日营养摄入计算与主要的食物成分表(健身必备)