ifndef/define/endif的使用
ifndef/define/endif:简而言之就是避免头文件被重复引用。
(ifdef/define/endif是已定义的宏为真,ifndef/define/endif是未定义的宏为真)
在一个大型软件工程编写code,可能会有多个文件同时包含一个头文件,当这些文件编译链接成一个可执行文件时,就会出现大量重定义的错误。在头文件中实用#ifndef #define #endif能避免头文件的重定义。
如编写头文件ArrayList.h
在头文件开头写上两行:
#ifndef _Array_List_h
#define ArrayList.h //一般是文件名的大写
头文件结尾写上一行:#endif
这样一个工程文件里同时包含两个ArrayList.h时,就不会出现重定义的错误了。
分析:当第一次包含ArrayList.h时,由于没有定义_Array_List_h,条件为真,这样就会包含(执行)#ifndef _Array_List_h和#endif之间的代码,当第二次包含test.h时前面一次已经定义了_Array_List_h,条件为假,#ifndef _Array_List_h和#endif之间的代码也就不会再次被包含,这样就避免了重定义了。主要用于防止重复定义宏和重复包含头文件
版权声明:本文为CSDN博主「Comwangquan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_45507472/article/details/117928374
ifndef/define/endif的使用相关推荐
- ifndef/define/endif——主要目的是防止头文件的重复包含和编译
原文:http://www.jb51.net/article/100939.htm 原文:https://blog.csdn.net/abc5382334/article/details/180527 ...
- c:#ifndef, #define, #endif 作用
#ifndef, #define, #endif 作用 #ifndef 它是if not define 的简写,是宏定义的一种,实际上确切的说,这应该是预处理功能三种(宏定义.文件包含.条件编译)中的 ...
- c/c++头文件中#ifndef/#define/#endif的用法
想必很多人都看过"头文件中用到的 #ifndef/#define/#endif 来防止该头文件被重复引用".但是是否能理解"被重复引用"是什么意思?头文件被重复 ...
- [Windows编程] #pragma once 和#ifndef ... #define ... #endif 比较
C++中防止头文件被多次include 的常见方式有: 1) 用#ifndef ... #define ... #endif 宏 #ifndef __MYHEADER_H__ #define __ ...
- C语言头文件为什么要加#ifndef #define #endif(防止头文件重复包含)
当你用VC的菜单新增一个类,你会发现自动生成的代码总是类似下面的样子: #if !defined(AFX_XXXX__INCLUDED_)#define AFX_XXXX__INCLUDED_具体代码 ...
- C++中#ifndef/#define/#endif使用详解
想必很多人都看过"头文件中的 #ifndef/#define/#endif 防止该头文件被重复引用".但是是否能理解"被重复引用"是什么意思?是不能在不同的两个 ...
- #ifndef/#define/#endif
#ifndef/#define/#endif 头文件中的 #ifndef/#define/#endif 防止该头文件被重复引用 "被重复引用"是指一个头文件在同一个cpp文件中被i ...
- 【转载】#pragma once与#ifndef #define #endif的区别
一.相同点 两者的共同点都是为了避免同一个文件被 include 多次,但是 #ifndef #define #endif 不只有这个作用. 在能够支持这两种方式的编译器上,二者并没 ...
- #ifndef.#define, #endif 的用法
文件中的#ifndef.#define, #endif 很关键,是为了避免多重包含,比如如果两个C文件同时包含同一头文件,那么就会出现问题,所以使用这种方法可以有效避免这种情况. 一般用法: 以add ...
- 每日一题(12)—— .h头文件中ifndef/define/endif的作用
.h头文件中ifndef/define/endif的作用? 分析: 防止头文件被重复包含. #ifndef _TEST_H_ #define _TEST_H_/* test.h */#endif / ...
最新文章
- 关于js中cookie的认识
- AI技术诠释全新智能,多方位优化样样贴心
- [置顶] AMF序列化为对象和AMF序列化为二进制字节流
- Zuul spring cloud zuul com.netflix.zuul.exception.ZuulException GENERAL解决方案
- 项目下创建文件_Linux 下创建和使用交换文件
- Qt下拉对话框 ComboBox的用法
- 在tomcat服务器部署finereport
- 什么是同步异步?阻塞非阻塞?
- Java反射及 IoC原理、内省机制
- ftp script for DOS
- Processing的条件式
- # 创业计划书-样例参考五千套(一)
- 005 Java反射面试题
- paraview热流图(5):只保留一个网格
- 移动安全初探:窃取微信聊天记录、Hacking Android with Metasploit
- 怎么给word文档注音_如何给Word文档中的汉字加拼音?一键加拼音超级方便
- C++综合练习——身份证
- 西北计算机大赛奖金有多少,我校学生2019年中国大学生计算机设计大赛西北赛区决赛中获得佳绩...
- Wijmo JavaScript UI 5.20222.877 Crack
- echarts实现中国地图,山西地图,图表面积图配置项