C/C++ 编程规范总结-2

简介: C/C++ 编程规范总结

C/C++ 编程规范总结-1

https://developer.aliyun.com/article/1507970


规则2-5-1

函数声明时,类型与名称不允许分行书写

5e009b4d941685a5b8d9b8dd480e2f02_a1632653f8804da9a2711fd32221ff64.png



3. 注释

规则3-1

文件头部必须进行注释,包括:.h文件、.c文件、.cpp文件、.inc文件、.def文件、编译说明文件.cfg等。

注释必须列出:版权信息、文件标识、内容摘要、版本号、作者、完成日期、修改信息等


9d3ca50a198bcb4fc30be7dcec523808_f1a40954bddd4330920ebd5f5eb30b88.png


规则3-2

函数头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返回值、访问和修改的表、修改信息等。

说明:注释必须列出:函数名称、功能描述、输入参数、输出参数、返回值、修改信息等


73d62671fbb74e457e82ac884ee4cecb_8f12031ce48942a5afd174eada0d96a2.png


规则3-3

包含在中代码块的结束处应加注释,便于阅读。


特别是多分支、多重嵌套的条件语句或循环语句。

e0cc43a7517b28413c5731b1070bc943_f24649d84c2b4479af676b74cdc50e1a.png


规则3-4

注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释) 相邻位置不可放在下面,如放于上方则需与其上面的代码用空行隔开


ccd9dabaadfd152c483e4d4692cc036d_12acc15144674a93956ac9d04b17e769.png



4. 命名规则

规则4-1

标识符要采用英文单词或其组合,便于记忆和阅读,切总使用汉语拼音来命名。


标识符应当直观且可以拼读,可望文知义,避免使人产生误解。程序中的英文单词一般不要太复杂,用词应当准确。


规则4-2

标识符的命名应当符合“min-lengt && max-information”原则

较短的单词可通过去掉“元音”形成缩写,较长的单词可取单词的头几个字母形成缩写,一些单词有大家公认的缩写,常用单词的缩写必须统一。协议中的单词的缩写与协议保持一致对于某个系统使用的专用缩写应该在某处做统一说明。


例如:


  • temp 可缩写为 tmp ;
  • flag 可缩写为 flg ;
  • statistic 可缩写为 stat ;
  • increment 可缩写为 inc ;
  • message 可缩写为 msg ;

规则4-3

用正确的反义词组命名具有互斥意义的变量或相反动作的函数等


  • add / remove;
  • begin / end;
  • create / destroy;
  • insert / delete;
  • first / last;
  • get / release;
  • increment / decrementputget;
  • lock / unlock ;
  • open / close ;
  • min / max;
  • old / new;
  • start / stop;
  • source / target ;
  • next / previous;
  • show / hide;
  • send / receive ;
  • source / destination;
  • cut / paste;
  • up / down;

规则4-4

宏、常量名都要使用大写字母,用下划线 '_' 分割单词。


预编译宏定义使用下划线 '_' 开始。


例如:


DISP_BUF_SIZE、MIN_VALUE、MAX_VALUE


规则4-5

变量名长度应小于31个字符,以保持与ANSI C标准一致。


不得取单个字符(如i、j、k等)作为变量名,但是局部循环变量除外。


规则4-6

程序中局部变量不要与全局变量重名

尽管局部变量和全局变量的作用域不同而不会发生语法错误,但容易使人误解。


规则4-7

使用一致的前缀来区分变量的作用域

变量活动范围前缀规范如下:

55f2dec43449e207e297d936d567c3d1_74d9c5394eef4f0fa435c6430d485485.png

规则4-8

使用一致的小写类型指示符作为前缀来区分变量的类型。

2a11a4da7e794f1fdf49a38d4e3dff9e_9417eaca0e554a24b158ff07fee5b397.png



规则4-9

完整的变量名应由前缀+变量名主体组成,变量名的主体应当使用“名词”或者“形容词 + 名词”,且首字母必须大写。


例如:


  • float g fValue; // 类型为浮点数的全局变量
  • char *pcOldChar; // 类型为字符指针的局部变量char

规则4-10

结构名、联合名、枚举名由前缀T_开头。

事件名由前缀EV 开头

规则4-11

类名采用大小写结合的方法。在构成类名的单词之间不用下划线,类名在开头加上C,类的成员变量统一在前面加m_前缀


建议4-12

尽量避免名字中出现数字编号,如Value1、Value2等,除非逻辑上的确需要编号


建议4-13

标识符前最好不加项目、产品、部门的标识

这样做的目的是为了代码的可重用性


C/C++ 编程规范总结-3

https://developer.aliyun.com/article/1507972

相关文章
|
网络协议 Windows
两步带你解决IDEA 插件下载安装慢、超时、不成功问题
这篇文章提供了解决IDEA插件下载慢或超时问题的方案,通过查找国内插件节点IP地址并修改本地hosts文件来加速下载。
两步带你解决IDEA 插件下载安装慢、超时、不成功问题
|
自然语言处理 算法 Java
C/C++ 程序员编程规范之注释
C/C++ 程序员编程规范之注释
1344 1
Cocos Creator3.8 项目实战(五)背景无限滚屏效果如何实现
Cocos Creator3.8 项目实战(五)背景无限滚屏效果如何实现
1300 0
|
7月前
|
存储 安全 C语言
C语言深度解析:函数指针的底层本质与避坑指南
本文深入剖析C语言函数指针的本质——函数名即代码段入口地址,厘清其与数据指针的根本差异;系统梳理回调、跳转表、中断向量、动态库等核心应用场景;重点警示签名不匹配、`void*`强转、野指针调用三大致命陷阱,并给出`typedef`封装、空值校验、边界防护等最佳实践。(239字)
867 134
|
7月前
|
人工智能 自然语言处理 Linux
保姆级零门槛教程!OpenClaw(Clawdbot)阿里云/本地部署接入大模型智谱GLM-5指南
OpenClaw(曾用名Clawdbot、Moltbot)作为开源AI智能体工具,核心优势在于可将自然语言指令转化为实际系统操作,涵盖文件管理、终端命令执行、浏览器自动化、多工具集成等功能,摆脱了普通聊天机器人“只说不做”的局限。2026年,智谱GLM-5大模型正式发布,作为GLM系列的第五代核心产品,其凭借千亿级参数、多模态能力、200k超长上下文以及推理提速40%的优势,与OpenClaw协同后,可大幅强化自然语言理解、复杂任务规划与多模态交互能力,让新手也能快速实现办公自动化、开发辅助、多模态处理等场景落地。
4403 5
|
消息中间件 监控 API
理解微服务架构:构建灵活和可扩展的应用
【10月更文挑战第7天】理解微服务架构:构建灵活和可扩展的应用
|
程序员 编译器 C++
|
Java 调度
多线程的实现和成员方法
本文介绍了并发编程与多线程的概念,解释了进程与线程的区别,以及多线程的多种实现方式。首先说明了传统单进程编程的局限性,引出多线程编程的需求。接着详细介绍了线程的基本概念,包括线程与进程的关系、线程的轻量化特性及其实现并发的能力。文中列举了三种实现多线程的方法:继承 `Thread` 类、实现 `Runnable` 接口以及使用 `Callable` 和 `Future` 接口,并对比了它们各自的优缺点。最后,文章还介绍了线程的一些常用方法
249 4
|
C语言
【维生素C语言】第七章 - 结构体
本章将对结构体进行简单的学习,后期在自定义类型讲解章节会进一步学习结构体。由于本章知识点较少,在文章的最后对函数栈帧的创建与销毁进行一个简要的介绍。
339 0
【维生素C语言】第七章 - 结构体

热门文章

最新文章