当前位置:网站首页>C语言代码规范
C语言代码规范
2022-04-23 05:51:00 【tilblackout】
(1)switch case
swich
和case
标签应该对齐处于同一列
switch (character) {
case 'a':
...
break;
default:
break;
}
(2)一行的长度限制在80列
超过要换行,且进行合适的缩进,一般一个缩进即可。
(3)括号
代码中用到大括号{}
的地方,应该把起始大括号“{”放到行尾,把结束大括号“}”放到行首。如if
、switch
、for
、do
、while
。
- 注意:函数的起始大括号要放置到下一行的开头
只有一个单独的语句时候可不加大括号:
if (condition)
action();
//多分支情况:只要有一个分支不为单独语句即都要加括号
if (condition) {
do_this();
do_that();
} else {
otherwise();
}
(4)空格
- 一元操作符后不要加空格,如
*
(指针)、!
、~
、sizeof
- 二元操作符(两边跟操作数)两旁需要加空格,如
*
(乘法)、=
、!=
、==
、%
- 指针类型中,
*
应该靠近变量名或函数名一侧,而不是靠近类型名。
(5)注释
注释应该告诉别人代码做了什么,而不是怎么做的。注释要放到函数的头部,且应选择/* ……… */
,而不是//
。
对于多行注释,应该像下面这样:
/*
* This is the preferred style for multi-line
* Please use it consistently.
*/
文件信息注释(放在文件最开始):
/*************************************************
Copyright zuozhongkai Co., Ltd. 1998-2018. All rights reserved.
File name: // 文件名
Author: //作者
Version: //版本号
Description: // 用于详细说明此程序文件完成的主要功能,与其他模块
// 或函数的接口,输出值、取值范围、含义及参数间的控
// 制、顺序、独立或依赖等关系
Others: // 其它内容的说明
Log: // 修改日志,包括修改内容,日期,修改人等
*************************************************/
函数的注释:
/*
* @Description: 函数描述,描述本函数的基本功能
* @param 1 – 参数 1.
* @param 2 – 参数 2
* @return – 返回值
*/
(6)命名规则
- 单词用小写,然后每个单词用下划线“_”连接在一起(Linux命名风格)
- 要使用完整的单词或者大家都知道的缩写
- 具有互斥意义的变量或者动作相反的函数应该是用互斥词组命名
(7)函数
- 一个函数完成一个功能
- 重复代码要提炼成函数
- 不同函数用空行隔开,如果需要导出,
EXPORT*
宏应该紧贴在他的结束
大括号下
int system_is_up(void)
{
return system_state == SYSTEM_RUNNING;
}
EXPORT_SYMBOL(system_is_up);
- 若函数内有多重循环,或从多个位置退出时,建议使用
goto
- 函数嵌套不要超过4层
- 对函数的参数做合法性检查
- 仅当前文件使用的函数要加上
static
(8)宏
- 定义常量的宏的名字及枚举里的标签需要大写,但函数宏可用小写
- 使用表达式定义常量的宏必须将表达式置于一对小括号之内,如
#define CONSTEXP (CONSTANT | 3)
- 对于有多条语句的宏,建议写成
do while(0)
格式 - 如果宏是常量,建议使用
const
代替
版权声明
本文为[tilblackout]所创,转载请带上原文链接,感谢
https://blog.csdn.net/tilblackout/article/details/115201257
边栏推荐
- Tabbar implementation of dynamic bottom navigation bar in uniapp, authority management
- Matlab calibration board corner detection principle
- 爬虫效率提升方法
- sqlite编译
- 修改注册表的值
- 使用TransmittableThreadLocal实现参数跨线程传递
- 【UDS统一诊断服务】一、诊断概述(3)— ISO 15765体系结构
- Class inheritance and derivation
- C语言结构体指定初始化
- Graduation project, viewing screenshots of epidemic psychological counseling system
猜你喜欢
Programmers can also write novels
C#中?的这种形式
jenkspy包安装
【UDS统一诊断服务】二、网络层协议(2)— 数据传输规则(单帧与多帧)
C语言的浪漫
FOC电机库 定点PID代码分析
【UDS统一诊断服务】四、诊断典型服务(1)— 诊断和通信管理功能单元
PM2 deploy nuxt project
OpenCV使用 GenericIndex 进行 KNN 搜索
Detailed arrangement of knowledge points of University probability theory and mathematical statistics
随机推荐
【无标题】
Tabbar implementation of dynamic bottom navigation bar in uniapp, authority management
生成验证码
Opencv uses genericindex for KNN search
【OpenCV】使用 FileStorage 读写 Eigen 向量
Round up a little detail of the round
For() loop parameter call order
进程间通信-互斥锁
在visual stdio中运行qt程序
【UDS统一诊断服务】一、诊断概述(1)— 诊断概述
sqlite3加密版
Generate random number
Graduation project, viewing screenshots of epidemic psychological counseling system
圆整 round 的一点点小细节
C#中?的这种形式
Camera calibration: key point method vs direct method
类和对象
[ThreadX] h743 + ThreadX + Filex migration record
Jeu de devinettes
C语言输入和输出(printf和scanf函数、putchar和getchar函数)