我的C语言编码习惯(限制篇)

2022-12-05 16:00:48 浏览数 (3)

为防止头文件的重复引用,定义宏__INCfileNameh

为兼容C ,添加extern "C"

代码语言:javascript复制
/* semLib.h */

#ifndef __INCsemLibh
#define __INCsemLibh

#include <vxWorks.h>

#ifdef __cplusplus
extern "C" {
#endif

#define SEM_Q_MASK     0x03

extern STATUS semShow(SEM_ID semId, int level);

#ifdef __cplusplus
}
#endif

#endif /* __INCsemLibh */

每行一条语句,包括变量声明、分支语句、循环语句等

代码块需使用大括号

逻辑表达式需使用小括号

代码语言:javascript复制
#include <stdio.h>

#define MAX_NUM 100

void test()
{
    int i;
    int j = 0;

    for(i=0; (i<MAX_NUM) && (j<=MAX_NUM); i  )
        {
        printf("i=%dn", i);
        }

    while(j<MAX_NUM)
        {
        j  ;
        }
    }

每行最多80字符

换行时运算符在行尾

换行后与前一行同类内容对齐,包括字符串,并在行尾和行首加双引号

不在逻辑表达式中赋值

逻辑表达式使用布尔型比较

代码语言:javascript复制
    char *buf;

    buf = (char *)malloc(MAX_NUM);
    if(NULL != buf)
        {
        doSth();
        }

不使用三目运算符 - ?:,改用if else

比较浮点数时,不使用==,用<=和>=

不使用goto

不使用continue

switch必须包含default

public函数入参需判断有效性

所有代码均可到达

递归深度必须有限

函数的圈复杂度不宜过高,尽量不超过20

每个代码块尽量具有唯一出口.

例如:函数内只有一处return;循环里最多一处break

0 人点赞