C语言编程规范:常见注意事项

1,公司代码风格统一,方便维护,切忌修改第三方代码风格。

2,切忌对第三方代码封装

3,TAB缩进4个空格

4,注释使用/**/风格,切忌使用//

5,if、switch、case、for、do、while 关键字后面加空格

6,定义指针类型* 靠近函数名、变量名一侧

int  *a

7,二元、三元操作符两侧都加空格

= + - > < */ % | & ^ <= >= == != ? :

8,一元操作符后面不加要空格

 ~ ! siezeof typeof 

9,++ -- 后面不加空格

10、. ->结构体成员操作后面不加空格

11、/* 注释 */  两边就空格

12、文件信息注释

/**
****************************************************************************** 
* @file delay.c
* @author water
* @version V1.0
* @date 2020-03-12
* @brief 串口初始化代码(一般是串口 1)
* @copyright Copyright (c) 2020-2032, xxx有限公司
******************************************************************************
* @attention
*
* 硬件平台:xxxx
*
* 修改说明
* V1.0 20200312
* 第一次发布
*
******************************************************************************
*/

13、函数注释

函数注释包括:
参数简要说明( @brief
参数说明( @param
参量列表说明( @arg
注释说明( @note
返回值说明( @retval

 

/**
* @brief GPIO 通用设置
* @param p_gpiox: GPIOA~GPIOK, GPIO 指针
* @param pinx: 0X0000~0XFFFF, 引脚位置, 每个位代表一个 IO, 
* 第 0 位代表 Px0, 第 1 位代表 Px1, 依次类推.
* 比如 0X0101, 代表同时设置 Px0 和 Px8.
* @arg SYS_GPIO_PIN0~SYS_GPIO_PIN15, 1<<0 ~ 1<<15
*
* @param mode: 0~3; 模式选择, 设置如下:
* @arg SYS_GPIO_MODE_IN, 0, 输入模式(系统复位默认状态)
* @arg SYS_GPIO_MODE_OUT, 1, 输出模式
* @arg SYS_GPIO_MODE_AF, 2, 复用功能模式
* @arg SYS_GPIO_MODE_AIN, 3, 模拟输入模式
*
* @param otype:0~3; 输出类型选择, 设置如下:
* @arg SYS_GPIO_MODE_IN, 0, 输入模式(系统复位默认状态)
* @arg SYS_GPIO_MODE_OUT, 1, 输出模式
* @arg SYS_GPIO_MODE_AF, 2, 复用功能模式
* @arg SYS_GPIO_MODE_AIN, 3, 模拟输入模式
*
* @param ospeed:0~3; 输出速度, 设置如下:
* @arg SYS_GPIO_SPEED_LOW, 0, 低速
* @arg SYS_GPIO_SPEED_MID, 1, 中速
* @arg SYS_GPIO_SPEED_FAST, 2, 快速
* @arg SYS_GPIO_SPEED_HIGH, 3, 高速
*
* @param pupd:0~3: 上下拉设置, 设置如下:
* @arg SYS_GPIO_PUPD_NONE, 0, 不带上下拉
* @arg SYS_GPIO_PUPD_PU, 1, 上拉
* @arg SYS_GPIO_PUPD_PD, 2, 下拉
* @arg SYS_GPIO_PUPD_RES, 3, 保留
*
* @note: 注意: 在输入模式(普通输入/模拟输入)下, OTYPE 和 OSPEED 参数无效!!
* @retval 无
*/
void sys_gpio_set(GPIO_TypeDef *p_gpiox, uint16_t pinx, uint32_t mode, uint32_t otype, 
uint32_t ospeed, uint32_t pupd)
{
 uint32_t pinpos = 0, pos = 0, curpin = 0;
…… /* 省略代码 */
}

14、文件命名

采用小写

15、变量/函数命名

采用小写+ 下划线

16、宏命名

大写

17、对函数参数做合法性检查

18、函数的错误用返回值表示

19、static

表示函数或变量私有化,仅在当前文件或函数内使用,避免与其他文件冲突

20、int num=a?4:3;

/* 较好的初始化:?:减少数据流和控制流的混合 */

21、函数宏命名 :一定要使用 do{ }while(0)

#define USART_UX_CLK_ENABLE() do{ RCC->APB2ENR |= 1 << 4; } while(0)

22、常量建议使用 const 定义来代替宏

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值