嵌入式C语言编程头文件应该包含的内容 2012-01-01 19:00:00| 分类: 嵌入式系统平台开|字号 订阅 本文介绍嵌入式开发中C语言中如何设计.h头文件。嵌入式C语言编程中头文件应该包含什么,怎么创建头文件,应该用什么样的原则。本文很多内容来自Embedded C Coding Standard这本
书
关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf
。 很多嵌入式系统程序员在开发驱动或者其他实时操作系统时,通常会
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
现的很缺乏关于C语言编程的基本素养。这很多是因为嵌入式系统程序员很多是从电子工程师半路出家开始编程和自学C语言和C++的。以下是一些编程规范,主要是在创建.h头文件过程中需要注意的,一些应该做的Do's和不应该做的Don'ts。 为每一个单独的模块创建一个头文件 一个模块可能包含一个或多个编译单元(如.c,.sa或者.asm文件),但是该模块只是实现整个系统的一个方面,常见的可选模块如A/D、D/A设备驱动,网络通信
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
如FTP,TCP,UDP等,负责
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
错误条件和提醒用户的闹钟控制器等。 在每个模块的头文件中,包含所有会被外部访问的接口函数的声明。DO include in the header file all of the function prototypes for the public interface of the module it describes. 如头文件adc.h文件可能包含如下的函数原型adc_init(), adc_select_input()和 adc_read()等. 不要在头文件中包含该模块内的不会被其他模块访问的其他函数和宏。在实现的代码中,需要隐藏那些内部的"helper"函数,如果不被其他模块调用或者引用,则隐藏它。如果你的模块的多个编译单元需要共用一个函数时,那就创建一个单独的模块私有头文件来包含这个共用函数。而模块的调用则通过module.h头文件中来作为调用模块函数的声明。 不要在头文件中包含任何可执行的代码,包括变量的声明。但并不限于inline内联函数。 在头文件中不要暴露任何变量,这个变量通常使用extern关键字声明。一个模块的合理包装是包含对数据的隐藏的,任何内部的状态数据都需要是内部.c源文件中定义的私有变量,通常这些变量还应该采用static关键字声明,这样就告诉链接器来隐藏这些变量。 不要暴露任何模块相关的内部数据结构。也就是说头文件内不能包含"struct {^} foo;"声明,如果你确实需要在别的模块内创建该模块的实例,你可以采用"typedef struct foo module_type"在头文件中,虽然客户端模块并不清楚模块的具体构成,也还能访问和传递参数给其他模块。 内联函数 Inline关键字是C++编程语言的一部分,然后在C99
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
钟也采用了inline关键字。C++中很多程序代码是在类定义之外的,而一般一个头文件对应于一个类。任何C++函数都可以声明为inline. 如果一个inline函数只会在一个模块内使用,那么就把该函数放在某个.c文件中而不在模块的头文件中声明。这也符合只把会被其他模块使用的函数才声明在头文件中的准则。但如果这个inline函数是基于定义在头文件中的数据类型,而该数据类型定义必须被两个或者多个模块使用,此时应该把inline函数放到头文件。 其他争论点: 为每一个模块创建一个.h头文件,有时一个模块会包含若干个函数接口,而一些接口可能会被多个module复用,如简单的自定义的malloc和free函数。因而这个头文件可能是为一个公共模块如common.h。还有如把系统配置的信息定义在头文件,但是这个配置信息可能会被多个模块调用,其本身也不是一个模块。