使用头文件的原因和规范
原因
通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布,只
要向用户提供头文件和二进制的库即可。用户只需要按照头文件中的接口声明来调用库
功能,而不必关心接口怎么实现的。编译器会从库中提取相应的代码。头文件能加强类型安全检查。如果某个接口被实现或被使用时,其方式与头文件
中的声明不一致,编译器就会指出错误,这一简单的规则能大大减轻程序员调试、改错
的负担
规范
在开头和结尾应该加上防止多次引用的宏
//headfilie.h
#ifndef _HEADFILE_H_#define _HEADFILE_H_//声明#endif
未初始化的全局变量将会放到elf
文件的.bss
段中,.bss
不占据实际的磁盘空间,只在段表中记录大小,在符号表中记录符号。当文件加载运行时,才分配空间以及初始化。因此可以多次声明。
参考博客
- 在源文件(.c)和头文件(.h)中声明和定义的区别——C语言
- bss段不占据磁盘空间的理解
- extern的使用详解(多文件编程)——C语言
使用头文件的原因和规范相关推荐
- 函数实现不放在头文件的原因,及何时可以放头文件的情况
1 .引子 在平常的 C/C++ 开发中,几乎所有的人都已经习惯了把类和函数分离放置,一个 .h 的头文件里放声明,对应的 .c 或者 .cpp 中放实现.从开始接触,到熟练使用,几乎已 ...
- 函数实现不放在头文件的原因,及何时可以放头文件的情况【转】
1 .引子 在平常的 C/C++ 开发中,几乎所有的人都已经习惯了把类和函数分离放置,一个 .h 的头文件里放声明,对应的 .c 或者 .cpp 中放实现.从开始接触,到熟练使用,几乎已经形成了下意识 ...
- c++使用多个库的头文件内容里有名字相同问题
首先说下结构体,如果两个头文件定义的结构体内容不一样,但名字一样,当一个文件同时包含着两个头文件的时候,就会报如下错误: 此时,在不修改头文件的情况下(最好不要改动,不然第三方库可能调用出错),使用命 ...
- C语言编程规范 — 头文件、函数
0 编码规范说明 0.1 前言 为了提高产品或项目代码质量,软件开发人员编写出简洁.可靠.可维护.可测试.高效.可移植的代码,树立良好的编程规范是非常有必要的,良好的编程规范能提高编程效率,规避很多编 ...
- 【Android NDK 开发】Visual Studio 2019 使用 CMake 开发 JNI 动态库 ( 动态库编译配置 | JNI 头文件导入 | JNI 方法命名规范 )
文章目录 I . JNI 与 NDK 区别 II . Visual Studio 编译动态库 III. 配置 导入 jni.h 头文件 IV . IntelliJ IDEA Community Edi ...
- C/C++ 为什么#ifndef 头文件 要用大写加下划线?(这就是一种约定俗成的规范)
如图,防止头文件重复包含,为什么要用大写加下划线?为什么不是直接写peripherals.h,我已经在问了 解释: 首先,test.h不是合法的C标识名:合法的C标识名只能由字母.数字和下划线组成,且 ...
- javah导出类的头文件抛出异常——java.lang.IllegalArgumentException: Not a valid class name(原因及解决方法)
[0]README 0.1) 本文旨在给出 java.lang.IllegalArgumentException 异常的原因 和 处理方法, 该异常和 javah 没有半毛钱关系 : 0.2) 本文附 ...
- C++ 头文件使用规范建议
1.背景 拥有良好的编程规范和风格是一名程序员成熟的标志.规范的编码可以减少代码冗余,降低出错率,便于代码管理和代码交流等,事实上,其作用远不止这些,我们要牢记编码规范在心中啊. C++ 具有很多强大 ...
- C++:头文件规范/模板
某个摄像头模块的Demo头文件,学习一下头文件规范 例1. #ifndef __HCAMERA_H__ #define __HCAMERA_H__#define HCAMERA_API extern ...
最新文章
- C++实用技巧(二)
- 全球及中国仪器润滑剂行业十四五竞争形势与投资战略咨询报告2021-2027年版
- malloc,free,new,delete解析(原)
- java 查看pdf_Java中实现pdf在线查看和下载
- Delphi中字符串比较大小 VS Oracle-SQL中字符串比较大小
- php时间格式函数,PHP函数之日期时间函数date()使用详解_php基础_脚本
- Android N 新特性 + APP开发注意事项
- node.js async await 配合Promise对象使用
- 如何网络监测其他计算机关闭445端口,关闭445端口的方法,小编告诉你电脑如何关闭445端口-站长资讯中心...
- 2018.6.5今天跟着视频做了一个提交Todolist
- Harbor 使用 Helm 一键安装
- Spring源码系列(十一)——Spring源码总结
- gsp计算机管理系的功能,医药系统的GSP管理
- Js获取外网IP地址
- IOMeter安装以及测试
- css实现优惠券的样式
- Idea内网配置仓库地址
- java基础 day-17 设计模式(单例,工厂,代理),静态动态代理,数据库连接池(动态代理)
- HHKB-BT 入门指北
- 微信开发者工具如何打开企业微信小程序
热门文章
- Windows 10 IoT Core 17101 for Insider 版本更新
- 洛谷 P1757 通天之分组背包
- 深入理解softmax函数
- scala akka通信机制
- Oracle使用startup与startup force启动的区别
- int main(int argc,char* argv[])讲解
- Windows下运行jekyll,编码已不再是问题
- 2013.8.7Java语言基础——数组
- ORACLE10g R2及PATH官方下载地址
- .net中调用exchange服务器发邮件