当前位置: 首页 > news >正文 C语言的头文件的处理 news 来源:原创 2024/5/18 16:34:49 1、头文件应该放的内容 普通函数声明。宏定义。结构体、共用体模块定义。枚举常量列表。static函数和inline函数定义其他头文件。 2、详细的解说以上 普通函数的定义不能放在头文件,因为普通函数默认是所有文件可见的,假如一个头文件被几个.c源文件包含了,那么当它们一起编译时就会出现函数重定义的错误。static型的函数是可以放在头文件里的,因为这些函数被任何一个.c源文件包含了也不会与别的文件冲突,实际上static型函数一般都放在头文件里面。inline函数默认就是static型函数,因此一般也被放在头文件里。由于头文件还可以嵌套包含别的头文件,为了防止头文件被重复包含,头文件的书写格式是有一定要求的。 例如head.h文件。 #ifndef _HEAD_H_ //如果没有定义此宏 #define _HEAD_H_ //则马上定义此宏 /********************************* ***** 头文件正文 *********************************/ #endif 3、预处理指令三种 头文件包含宏条件编译 #include "head.h" //文件包含 #define PI 3.1415 //宏 //条件编译 //第一种形式 #ifdef MACRO some statements #endif //第二种形式 #ifndef MACRO some statements #endif //第三种形式 #if expression //表达式的值位真,则编译 some statements #endif 相关文章: 使用 DM binary 部署 DM 集群 iOS小技能:RSA签名、验签、加密、解密的原理 使用 Argon2 的 Java 密码散列 基于多次傅里叶变换算法的快速相位解包裹算法研究 Mybatis-Plus用纯注解搞定一对多查询 6.CF431E Chemistry Experiment 权值线段树+二分 基于RFID技术的智能书架系统 1014 Circles of Friends Linux 下进程间通讯之内存映射详解 ROS官方教程知识点总结[低阶阶段] Linux常见命令汇总-基于CentOS7 让软件集成为您的业务创造更多价值 猿创征文 | 云服务器部署——将项目部署到云服务器上 PET-MRI医学图像融合与混合神经胶质瘤分类模型 RACV2022观点集锦 | 视觉基础模型 「面试题」如何实现一个圣杯布局? 【跃迁之路】【463天】刻意练习系列222(2018.05.14) android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码 D - 粉碎叛乱F - 其他起义 Eureka 2.0 开源流产,真的对你影响很大吗? HTTP--网络协议分层,http历史(二) Javascript Math对象和Date对象常用方法详解 JavaScript 无符号位移运算符 三个大于号 的使用方法 JavaWeb(学习笔记二) Python十分钟制作属于你自己的个性logo python学习笔记 - ThreadLocal React16时代,该用什么姿势写 React ? scala基础语法(二) sessionStorage和localStorage underscore源码剖析之整体架构 分享几个不错的工具 服务器从安装到部署全过程(二) 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶 设计模式走一遍---观察者模式 深入浏览器事件循环的本质 用quicker-worker.js轻松跑一个大数据遍历 kubernetes资源对象--ingress 从如何停掉 Promise 链说起 520就是要宠粉,你的心头书我买单 马来语翻译中文去哪比较好? !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结 #NOIP 2014# day.1 T3 飞扬的小鸟 bird (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法) (pt可视化)利用torch的make_grid进行张量可视化 (搬运以学习)flask 上下文的实现 (二开)Flink 修改源码拓展 SQL 语法 (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642 (附源码)springboot教学评价 毕业设计 641310 (入门自用)--C++--抽象类--多态原理--虚表--1020 (转)es进行聚合操作时提示Fielddata is disabled on text fields by default .NET MVC第五章、模型绑定获取表单数据 .NET中的十进制浮点类型,徐汇区网站设计 .php结尾的域名,【php】php正则截取url中域名后的内容 .stream().map与.stream().flatMap的使用 /*在DataTable中更新、删除数据*/
1、头文件应该放的内容 普通函数声明。宏定义。结构体、共用体模块定义。枚举常量列表。static函数和inline函数定义其他头文件。 2、详细的解说以上 普通函数的定义不能放在头文件,因为普通函数默认是所有文件可见的,假如一个头文件被几个.c源文件包含了,那么当它们一起编译时就会出现函数重定义的错误。static型的函数是可以放在头文件里的,因为这些函数被任何一个.c源文件包含了也不会与别的文件冲突,实际上static型函数一般都放在头文件里面。inline函数默认就是static型函数,因此一般也被放在头文件里。由于头文件还可以嵌套包含别的头文件,为了防止头文件被重复包含,头文件的书写格式是有一定要求的。 例如head.h文件。 #ifndef _HEAD_H_ //如果没有定义此宏 #define _HEAD_H_ //则马上定义此宏 /********************************* ***** 头文件正文 *********************************/ #endif 3、预处理指令三种 头文件包含宏条件编译 #include "head.h" //文件包含 #define PI 3.1415 //宏 //条件编译 //第一种形式 #ifdef MACRO some statements #endif //第二种形式 #ifndef MACRO some statements #endif //第三种形式 #if expression //表达式的值位真,则编译 some statements #endif 相关文章: 使用 DM binary 部署 DM 集群 iOS小技能:RSA签名、验签、加密、解密的原理 使用 Argon2 的 Java 密码散列 基于多次傅里叶变换算法的快速相位解包裹算法研究 Mybatis-Plus用纯注解搞定一对多查询 6.CF431E Chemistry Experiment 权值线段树+二分 基于RFID技术的智能书架系统 1014 Circles of Friends Linux 下进程间通讯之内存映射详解 ROS官方教程知识点总结[低阶阶段] Linux常见命令汇总-基于CentOS7 让软件集成为您的业务创造更多价值 猿创征文 | 云服务器部署——将项目部署到云服务器上 PET-MRI医学图像融合与混合神经胶质瘤分类模型 RACV2022观点集锦 | 视觉基础模型 「面试题」如何实现一个圣杯布局? 【跃迁之路】【463天】刻意练习系列222(2018.05.14) android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码 D - 粉碎叛乱F - 其他起义 Eureka 2.0 开源流产,真的对你影响很大吗? HTTP--网络协议分层,http历史(二) Javascript Math对象和Date对象常用方法详解 JavaScript 无符号位移运算符 三个大于号 的使用方法 JavaWeb(学习笔记二) Python十分钟制作属于你自己的个性logo python学习笔记 - ThreadLocal React16时代,该用什么姿势写 React ? scala基础语法(二) sessionStorage和localStorage underscore源码剖析之整体架构 分享几个不错的工具 服务器从安装到部署全过程(二) 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶 设计模式走一遍---观察者模式 深入浏览器事件循环的本质 用quicker-worker.js轻松跑一个大数据遍历 kubernetes资源对象--ingress 从如何停掉 Promise 链说起 520就是要宠粉,你的心头书我买单 马来语翻译中文去哪比较好? !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结 #NOIP 2014# day.1 T3 飞扬的小鸟 bird (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法) (pt可视化)利用torch的make_grid进行张量可视化 (搬运以学习)flask 上下文的实现 (二开)Flink 修改源码拓展 SQL 语法 (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642 (附源码)springboot教学评价 毕业设计 641310 (入门自用)--C++--抽象类--多态原理--虚表--1020 (转)es进行聚合操作时提示Fielddata is disabled on text fields by default .NET MVC第五章、模型绑定获取表单数据 .NET中的十进制浮点类型,徐汇区网站设计 .php结尾的域名,【php】php正则截取url中域名后的内容 .stream().map与.stream().flatMap的使用 /*在DataTable中更新、删除数据*/