0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何规范宏和常量以及命名

麦辣鸡腿堡 来源:嵌入式系统 作者:嵌入式系统 2023-12-07 14:49 次阅读

宏和常量

◎ 宏定义和常量使用大写字母或下划线。
◎ 用宏定义表达式时,要使用完备的括号,如下:

#define HEHE_AREA(a, b) ((a) * (b))

◎ 宏定义中尽量不要使用return、goto、continue、break等改变程序流程的语句。
◎ 常量建议使用const定义代替宏,如下

#define ASPECT_RATIO 1.653 替换成 const double ASPECT_RATIO = 1.653;

◎ 除非必要,应尽可能使用函数代替宏 。
◎ 将宏定义的多条表达式放在大括号中。
◎ 使用宏时,不允许参数发生变化。
◎ 尽量少用魔法数,或者必须加注释说明,或者修改方案,如内存长度操作禁止使用常数,非特殊情况必须使用sizeof自动处理。

2.6 命名

命名采用unix like风格,单词用小写字母,每个单词之间用下划线分割,引用的第三方的代码可保持原有风格,命名尽量使用通用英文单词或缩写。
2.6.1 文件
文件名命名可根据平台自有规则命名,一般采用小写字符,字段之间使用下划线分隔;相同功能的 .c和.h文件名相同。
2.6.2 枚举
枚举定义:宏定义和枚举值禁止使用小写字母,不能以下划线开头,字段之间使用下划线分隔,若逻辑中要标注多种状态,状态不允许用数字表示。
2.6.3 结构体
1、结构体定义,若同一功能所使用到的参数,尽量用结构体来定义表示,便于相关参数获取和设置。
2、纯业务逻辑代码,与平台无关的,必须使用小写字符和下划线分隔。
2.6.4 函数
函数名定义,函数名称需体现出函数具体功能,均由功能单词拼接组成,使用小写字母和下划线拼接,其中全局函数必须以xx_为前缀,在.h里面申明全局函数,补充完整注释;局部函数使用static限制。
2.6.5 变量
◎ 禁止使用全大写字母命名变量,全局变量至少5个字母,使用高频次的全局变量尽量简短。
◎ 全局变量命名表达其作用,且以小写字母g_开头,后面拼接功能英文,如地址:g_addr。
◎ 变量名的拼接,全部使用小写字母和下划线拼接,函数内局部变量允许使用单个字母。
◎ 多个同类的变量封装成结构体。
2.6.6 推荐命名

add/delete  begin/end  create/destroy  insert/delete
first/last  increment/decrement  get/set/release  up/down
lock/unlock  open/close  min/max  old/new
start/stop  next/previous  source/target  send/receive
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5057

    文章

    18970

    浏览量

    301861
  • 编码
    +关注

    关注

    6

    文章

    924

    浏览量

    54727
  • 函数
    +关注

    关注

    3

    文章

    4276

    浏览量

    62316
收藏 人收藏

    评论

    相关推荐

    java命名规范

     最近注意到很多学生在命名上忽略了好多细节,网上关于命名规范的文章也不少,整理了一下供大家参考。好的命名规范可以让你的程序更专业,
    发表于 09-18 12:21

    焊盘命名规范

    焊盘命名规范 通常我们的焊盘分为通过孔(THP)焊盘和表贴(SMD)焊盘两种形式。但这两种形式当中,又有多种形状。所以我们要有一个统一的命名规范,以方便以后调用。一、THP焊盘
    发表于 12-31 17:27

    C语言小问:与函数,常量的比较关系

    :有参函数形参必须指定类型;而有参中参数是没有类型的,实参可以是任意类型使用枚举 和使用#define定义常量和const关键字的区别(从优缺点比较)#Define指令优点:申明一次 多次使用;占用
    发表于 02-02 15:03

    关于Android命名规范

    第一家公司是如此的重要,如果开发流程规范,对你之后的影响不是一般的大!而我经历的公司大都不成体系,我的习惯就是我的规范!哈哈!很多的技术人员,恐怕都认为除了自己的作品外,别人写的代码都是“垃圾
    发表于 10-15 00:11

    史上最全的PCB封装命名规范

    史上最全的PCB封装命名规范
    发表于 11-27 17:23

    关于Android命名规范

    第一家公司是如此的重要,如果开发流程规范,对你之后的影响不是一般的大!而我经历的公司大都不成体系,我的习惯就是我的规范!哈哈!很多的技术人员,恐怕都认为除了自己的作品外,别人写的代码都是“垃圾
    发表于 06-21 09:35

    有没有可用的常量描述设备的内存配置

    嗨,有没有可用的常量描述设备的内存配置,例如启动地址和程序内存区域的大小? 以上来自于百度翻译 以下为原文 Hi,are there any constants or macros
    发表于 12-21 15:44

    STM32命名规范是什么

    文章目录前言一、认识STM32二、STM32命名规范总结前言前阵子买了正点原子的阿波罗STM32F429,并且看了正点原子十多个教学视频,结果愣是看不明白,之前以为像我有51单片机基础以及C语言功底
    发表于 12-01 07:44

    OrCAD绘制原理图命名规范

    文件建立1. 原理图命名参考文档命名规范,示意如下: 2. 对于有
    发表于 06-29 16:56 9330次阅读
    OrCAD绘制原理图<b class='flag-5'>命名</b><b class='flag-5'>规范</b>

    PCB封装命名规范

    介绍PCB封装的命名规范,让封装库有规律,易查询。
    发表于 10-29 14:07 0次下载

    封装命名规范

    本文详细介绍了元器件封装的命名规则,对于规范封装具有相当好的意义
    发表于 08-18 17:26 0次下载

    关于软件、硬件版本号命名的常见规范

    不知道大家写程序、画板子时,版本号是怎么命名的?   最常见的就是V1.0.0这种简单的形式命名,复杂一点就是带有日期、后缀等版本信息。   当然,版本号命名规范就像代码
    的头像 发表于 12-31 10:04 4690次阅读

    史上最全的PCB封装命名规范

    适用于主流EDA工具的封装命名规范规范命名可以提高审核效率,较少工程师犯错。
    发表于 10-21 16:06 0次下载

    科普一下Verilog代码命名规范

    命名规范包括模块命名规范和代码命名规范,代码命名需要
    的头像 发表于 11-17 09:54 3711次阅读

    什么是C语言常量与变量

    标识符是编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。
    的头像 发表于 02-27 15:05 970次阅读
    什么是C语言<b class='flag-5'>常量</b>与变量