专注软硬件开发,为您提供专业、高效、优质、贴心的服务! 邮箱:ytyunxinkeji@163.com

您所在位置:首页 > 新闻资讯 > 软件开发,编程规范要知道

软件开发,编程规范要知道

发布日期: 2022-08-30

  软件开发编程规范之头文件的六大编程规范详解

  

  今天来为大家分享一下软件开发过程中常常使用的编程规范,当然,只是一些工作中的建议,大家还要结合自己的项目实际需求进行相关的设计与开发哦,如果大家在开发中有相关的建议的话,也可以给出合理的建议!

  

  1 头文件编程规范详解

  

  1.1 头文件的名称命名规范

  

  首先,我们要注意的是,头文件的名称,一般我们采用的是英文版的小写字母格式,其次就是,头文件的格式,建议大家根据项目进行设定,如子系统的名称_文件的名称.h,采用这种格式进行命名。

  

  这样大家在读到你的头文件的时候,就知道是什么含义了。

  

  1.2 头文件的编译开关

  

  我们经常会使用相同的头文件,但是,如果多次进行重复包含的话,程序在编译过程中就会失败,所以,我们在定义头文件的时候,一定要使用

  

  #ifndef 预编译开关

  

  #define 预编译开关

  

  这个格式,否则会出现相关的编译错误的,那么到底什么是预编译开关呢?其实预编译开关就是在我们的头文件的名称的大写格式前面加下划线,如我们的头文件为ipf_protocol.h,那么我们使用如下宏定义即可:

  

  #ifndef _IPF_PROTOCOL_H

  

  #define _IPF_PROTOCOL_H

  

  下面就可以加我们想要在头文件中定义的内容了,这是在使用C或者C++语言时,定义头文件必不可少的环节,大家千万要注意。

  

  下面我们给出一个完整的例子,大家根据自己的需求进行填空即可哈。

  

  #ifndef _TLC_ONEDAY_H

  

  #define _TLC_ONEDAY_H

  

  ……

  

  头文件正文

  

  ……

  

  #endif

  

  1.3 禁止头文件的交叉引用

  

  我们在定义头文件的时候,一定要为头文件的层次设置为公共模块,私有模块,头文件的引用次序为下层头文件引用上层的头文件,私有文件引用公共的头文件。

  

  而且,我们在声明结构的时候,一定要格外注意,千万不能出现交叉引用的情况。

  

  下面咱们给出具体的实例,以便大家能够清晰认识这个错误:

  

  头文件 isdn_a.h

  

  

  

  #ifndef _ISDN_A_H

  

  #define _ISDN_A_H

  

  #include “isdn_b.h”

  

  typedef struct

  

  {

  

  ...;

  

  ISDN_ConTROL stIsdnControl;

  

  ...;

  

  }ISDN_ CONFIG;

  

  #endif

  

  头文件 isdn_b.h

  

  /************************************************************

  

  Description: 定义控制数据结构

  

  #ifndef _ISDN_B_H

  

  #define _ISDN_B_H

  

  #include “isdn_a.h”

  

  typedef struct

  

  {

  

  ...;

  

  ISDN_ConFIG stIsdnConfig;

  

  ...;

  

  }ISDN_CONTROL;

  

  #endif

  

  为了解决上述矛盾,可以将两个结构合并到一个文件中声明。

  

  1.4 引用头文件时使用的" "和< >

  

  如果引用系统头文件,必须使用“< “和“> “;如果引用自定义的头文件,必须使用“” “和“”

  

  PS:所谓的系统头文件指的就是编译系统提供的头文件;

  

  1.5 禁止在头文件中定义变量

  

  一般来说,我们只能在头文件中声明变量的类型,不能定义变量,这是开发老手们都默认的规则,新手千万要注意。

  

  1.6 禁止无顺序地声明头文件

  

  头文件的声明顺序一般是宏、结构、函数、变量。函数在头文件中声明时开头可以不加“extern”;

  

  软件开发中,一般都是多人维护,如果大家连基本的准则规范都没有做到一致的话,后续进行更深层次的交流是非常耗时的,希望大家能够严格遵守上述使用和定义规则吧,当然还有其它的规范,如源文件,变量定义等等相关的规范内容;

  

  时间关系,就先为大家分享到这里了,我们后续再进行更深入的分享吧