#ifndef的详细意思
#ifndef都是一种宏定义判断,作用是防止多重定义。
#ifndef是if not define的简写。
一般的使用场景为:
1)、头文件中使用,防止头文件被多重调用
2)、作为测试使用,省去注释代码的麻烦
3)、作为不同角色或者场景的判断使用。
头文件的中的#ifndef,这是一个很关键的东西。比如你有两个C文件,这两个C文件都include了同一个头文件。而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突。
还是把头文件的内容都放在#ifndef和#endif中吧。不管你的头文件会不会被多个文件引用,你都要加上这个。一般格式是这样的:
#ifndef <标识>
#define <标识> …
#endif
#ifndef的详细意思相关推荐
- esp8266时钟_ESP8266(Non-OS SDK) 驱动 waveshare 2.9 寸墨水屏(二)- 程序移植、修改与测试
开始移植 上一篇文章简单介绍了了墨水屏原理.例程代码以及移植工作的可行性.这一步的目的是把前面在 STM32 跑的程序,完整地搬到 esp8266 上,达到相同的运行显示效果,Let's get st ...
- linux的c文件报错for,linux c 编译错误 conflicting types for 的解决办法
程序在Windows下运行是OK的,但是放在linux系统gcc编译就会报错. 报错如下: tongxunlu.c:6:1: error: unknown type name 'linkman' li ...
- #ifdef和#ifndef的用法—详细解答
举一个使用 #ifdef 和 #ifndef 的例子: #ifndef MY_HEADER_H #define MY_HEADER_H// 这里是头文件的内容#endif 这个例子中,#ifndef ...
- Qt实现 指针式时钟+动态时钟 (详细注释)
先上效果图: 点击运行后首先是一个指针式时钟窗口,点击Digital Clock->可以跳转到数字时钟窗口,再点击Move Clock->可以还原为指针式时钟窗口 关于整个程序的讲解都在代 ...
- TitanDB GC详细实现原理 及其 引入的问题
文章目录 1. 为什么要有GC 2. GC的触发条件 3. GC的核心逻辑 1. blob file形态 2. GC Prepare 3. GC pick file 4. GC run 4. GC 引 ...
- C++ STL: 超详细 容器 deque 以及 适配器queue 和 stack 源码分析
文章目录 前言 deque 实现 deque类 _Deque_iterator 类 deque 的元素插入 insert函数 deque如何模拟空间连续 queue 实现 stack 的实现 前言 C ...
- C语言 #ifndef 引起的redefinition of xxx 问题解决
问题如下 多个.c和.h文件 其中cloth.h分布被hat.h和paths.h包含,编译时出现如下问题: error: redefinition of struct _Cloth 我的cloth.h ...
- DirectX下 Viewing Frustum 的详细实现
本文大部分内容翻译自Gil Gribb和Klaus Hartmann合写的<Fast Extraction of Viewing Frustum Planes from the World-Vi ...
- lk启动流程详细分析
转载请注明来源:cuixiaolei的技术博客 这篇文章是lk启动流程分析(以高通为例),将会详细介绍下面的内容: 1).正常开机引导流程 2).recovery引导流程 3).fastboot引导流 ...
最新文章
- 第一个程序实现登录功能,密码输错三次封账号。
- 2018/7/10-纪中某C组题【jzoj3792,jzoj3793,jzoj3794】
- C 结构体嵌套一级指针 二级指针 动态分配内存
- HDOJ 2037:今年暑假不AC_大二写
- python文件输入符_python读入文件时加r的作用?
- AI队列长度检测:使用Keras进行对象检测
- vfp生成菜单时文件不存在_如何在VFP项目中创建菜单
- php 日期 星期_php日期如何转星期
- 数组中的奇数排在偶数组前面
- 阶段3 2.Spring_10.Spring中事务控制_10spring编程式事务控制2-了解
- 计算机一级一分钟要打多少字,打字速度分几个等级,一分钟打多少个字算较快?...
- hosts – 如何默认使用记事本打开hosts文件或快捷方式
- 超几何分布与二项分布及其期望
- 火狐浏览器不兼容event问题
- Centos安装RabbitMQ超详细(必须收藏)
- 直播预告 | openGauss自治运维能力的技术演进分享
- 任何人都能看得懂的网络协议之 ARP
- 打印机键入传真服务器位置,打印机在打印时,出现 选择传真调制解调器或服务器,是为什么?...
- Java框架 SpringMVC介绍及入门案例
- SQL进阶之集合运算