当前位置: 首页 > news >正文

C语言的头文件的处理

1、头文件应该放的内容

  1. 普通函数声明。
  2. 宏定义。
  3. 结构体、共用体模块定义。
  4. 枚举常量列表。
  5. static函数和inline函数定义
  6. 其他头文件。

2、详细的解说以上

  1. 普通函数的定义不能放在头文件,因为普通函数默认是所有文件可见的,假如一个头文件被几个.c源文件包含了,那么当它们一起编译时就会出现函数重定义的错误。
  2. static型的函数是可以放在头文件里的,因为这些函数被任何一个.c源文件包含了也不会与别的文件冲突,实际上static型函数一般都放在头文件里面。
  3. inline函数默认就是static型函数,因此一般也被放在头文件里。
  4. 由于头文件还可以嵌套包含别的头文件,为了防止头文件被重复包含,头文件的书写格式是有一定要求的。 例如head.h文件。
#ifndef _HEAD_H_    //如果没有定义此宏
#define _HEAD_H_    //则马上定义此宏


/*********************************
***** 头文件正文
*********************************/

#endif

3、预处理指令三种

  1. 头文件包含
  2. 条件编译
#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中更新、删除数据*/