没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
C语言头文件避免重复包含、语言头文件避免重复包含、#pragma once和和#ifndef区别区别
一般情况下,我们都是把函数声明、类定义、模板定义等写到一个头文件里,需要时将相应的头文件用#include
包含到源文件(*.cpp文件)里来。但头文件中又允许包含其它的头文件,这样就难免发生某个头文件被重复地
包含。我们可以使用编译预处理命令避免这种情况的发生。
例如,你想确保头文件max.h不会被重复包含,则你可以采取如下的形式:
第一条预处理命令是说,如果MAXMIN_H不为真,说明此文件没被包含过,此命令后面的源代码有效(相当于:‘如果大门没
关,请您进来’);
第二条预处理命令把MAXMIN_H置为真(相当于请您把门锁插上,不让第二个人进来)。
最后一条预处理命令是为了标出接受上述处理的源程序的范围(相当于您已经走到了后门)。
假定有以下几个头文件及其包含关系为:
File1.h,file2.h,file3.h,file4.h,file5.h,main.cpp
那么:file3.h包含file1.h,file2.h,file4.h包含file1.h,file2.h,file5.h包含file3.h,file4.h。就会导致在file5中对file1和file2的反
复包含,编译时就会报错。
解决方法1:
1:应用#ifndef
#define
#endif
即每个文件在定义时都写成以下情势(以file1.h为例):
#ifndef H_FILE1
#define H_FILE1
#include<stdio.h>
#include<math.h>
…..
#endif
File3.h:
#ifndef H_FILE3
#define H_FILE3
#include<stdio.h>
#include<math.h>
#inlcude”file1.h”
#include”file2.h”
…..
#endif
方法二:在每个文件的头部定义:#pragma once(用于解释本文件中的内容只应用一次)
例:fiel1.h:
#pragma once
#include<stdio.h>
#include<math.h>
资源评论
weixin_38728464
- 粉丝: 1
- 资源: 966
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 阿里云api网关请求签名示例(java实现).zip
- 通过示例学习 Android 的 RxJava.zip
- 通过多线程编程在 Java 中发现并发模式和特性 线程、锁、原子等等 .zip
- 通过在终端中进行探索来学习 JavaScript .zip
- 通过不仅针对初学者而且针对 JavaScript 爱好者(无论他们的专业水平如何)设计的编码挑战,自然而自信地拥抱 JavaScript .zip
- 适用于 Kotlin 和 Java 的现代 JSON 库 .zip
- yolo5实战-yolo资源
- english-chinese-dictionary-数据结构课程设计
- mp-mysql-injector-spring-boot-starter-sql注入
- lunisolar-删除重复字符
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功