C语言编码规范

C语言编码规范写代码就像写文章 需要准确地使用标点符号 合理地划分段落 编写代码时 遵守统一的编码规范 让排版美观 可增强代码易读 降低出错的可能性

欢迎大家来到IT世界,在知识的湖畔探索吧!

写代码就像写文章,需要准确地使用标点符号,合理地划分段落。

编写代码时,遵守统一的编码规范,让排版美观,可增强代码易读,降低出错的可能性。

标识符命名规范

综合各类语言,目前常见的命名方法包括:

驼峰命名(Camel case):标识符由多个单词组成,第一个单词全小写,后面的所有单词首字母大写

PASCAL命名(Pascal case):标识符由多个单词组成,所有单词的首字母大写

小蛇命名(Snake case):标识符由多个单词组成,所有单词均小写,以下划线拆分单词

大蛇命名(Snake case):标识符由多个单词组成,所有单词均大写,以下划线拆分单词

烤串命名(kebab case):标识符由多个单词组成,所有单词小写,以中划线拆分单词(常用于url中)

匈牙利命名:标识符中包含作用域和类型信息。

例如:

#define USER_NAME_MAX_LENGTH 20 /* 大蛇命名 */ char userName[USER_NAME_MAX_LENGTH]; /* userName遵守驼峰命名 */ char UserName[USER_NAME_MAX_LENGTH]; /* UserName遵守PASCAL命名 */ char user_name[USER_NAME_MAX_LENGTH]; /* user_name遵守小蛇命名 */ char g_cUserName[USER_NAME_MAX_LENGTH]; /* 匈牙利命名,g代表全局变量,c代表char类型 */

欢迎大家来到IT世界,在知识的湖畔探索吧!

C语言,标识符命名采用小蛇命名和大蛇命名,变量名、函数名等按照小蛇命名;枚举常量、宏定义等按照大蛇命名。

缩进规范

  • 缩进使用4个空格(不建议用制表符Tab),建议在编辑器中,设置显示空格和制表符

VSCode的设置:

C语言编码规范

vscode显示空格设置



欢迎大家来到IT世界,在知识的湖畔探索吧!

SourceInSight的设置:

C语言编码规范

SourceInSight显示空格设置

Notepad++的设置

C语言编码规范

Notepad++显示空格设置

Visual Studio 2015的设置

C语言编码规范

VisualStudio2015显示空格设置

空格规范

  • 双目运算符、三目运算符,运算符两端各加一个空格
欢迎大家来到IT世界,在知识的湖畔探索吧!/* 双目运算符 */ = + - < > * / % | & ^ <= >= == != /* 三目运算符 */ ? :

例如:

c = a + b; /* good */ c=a+b; /* bad */
  • 单目运算符,与操作数之间不要加空格
欢迎大家来到IT世界,在知识的湖畔探索吧!/* 单目运算符 */ & * + - ~ ! sizeof ++ -- /* 结构体成员运算符 */ .和->

例如:

i++; /* good */ i ++; /* bad */
  • if, switch, case, for do, while等关键字后面需要加空格
欢迎大家来到IT世界,在知识的湖畔探索吧!if (condition) {}
  • sizeof, typeof, alignof, attribute等关键字后面不要加空格
  • 小括号内的表达式前后不要加空格
s = sizeof(struct file);
  • 定义指针变量时,星号贴近名字,而不应该贴近类型
欢迎大家来到IT世界,在知识的湖畔探索吧!char *str;

大括号规范

  • 左大括号放在行尾,右大括号放在行首
  • 函数是一个特例,左大括号独占一行
switch (action) { /* 左大括号放在行尾 */ case KOBJ_ADD: return "add"; case KOBJ_REMOVE: return "remove"; case KOBJ_CHANGE: return "change"; default: return NULL; } /* 右大括号放在行首 */ int function(int x) { /* 函数是一个特例,左大括号独占一行 */ body of function }
  • 为方便代码维护,即使条件语句中只有一条语句,也建议使用大括号
欢迎大家来到IT世界,在知识的湖畔探索吧!if (condition) { do_this(); do_that(); } else { otherwise(); /* 只有1条语句,建议使用大括号 */ }

断行规范

为方便代码编写和阅读,每行代码长度不要超过80列,代码中的字符串除外(为了方便字符串的阅读和查找,同一个字符串,长度超过80列时不建议分成多行)。

注释规范

为代码写注释是个好习惯,但不要过度。注释中不要试图解析您的代码如何(HOW)工作,最好的方式是代码本身就清晰地说明了它是如何工作的。

通常情况下,注释用来说明你的代码在做什么(WHAT),以及为什么这么做(WHY),记录避免描述怎么做(HOW)。

  • 给文件加上文件头注释
/ * Copyright 2022 * * @file eraser_lib.cpp * * @brief * *============================================================================= * Revision History * Version Date Author Content * ------- ---------- --------- --------------------------------------- * V1.00 2022/03/12 yangyf Create. * */ 
  • 给函数加上函数头注释
欢迎大家来到IT世界,在知识的湖畔探索吧!/ * @fn uint16_t calc_crc16(uint8_t const *data, int32_t data_len) * * @brief 计算16位的crc校验码 * * @param p_data 待校验数据的首地址 * @param data_len 数据长度 * * @return CRC value, 0x0000 ~ 0xFFFF */ uint16_t calc_crc16(uint8_t const *data, int32_t data_len) { // ...... }

~ END ~

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/143136.html

(0)
上一篇 53分钟前
下一篇 38分钟前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信