国有国法,家有家规。多数公司有自己的编码规范,每个developer有自己的编码风格。无关对错,只是记录一下我自己的习惯:
注释中的星号前后有空格,多行的星号用空格对齐
/* this is a single line comment */
/*
* this is a multiline comment
*/
功能类似的相邻代码行使用空格对齐
指针型变量的星号前有空格,后无空格
char var1;
char *var2;
short var3;
int var4;
int **var5;
struct MY_STRUCT var6;
union MY_UNION *var7;
等号左右有空格
int num = 0;
char *data = NULL;
分号前无空格,后有空格
for(i=0; i<10; i++)
逗号前无空格,后有空格
小括号左右无空格
int arrayA[] = {1, 2, 3};
taskSpawn(NULL, 100, 0, 0x2000, (FUNCPTR)test, 1, 2, 3, 4, 5, 6, 7, 8, 9 ,0);
中括号前后无空格
a = b[0];
大括号前后无空格
typedef struct
{
int a;
char b;
}myStr;
do
{
}while(1);
空括号内无空格
int arrayA[] = {1, 2, 3};
doSth();
case语句的冒号前无空格
switch(a)
{
case 1:
break;
case 2:
break;
default:
break;
}
三目运算符的问号前无空格,后有空格;冒号前后有空格
a? b : c;
单目运算符前后无空格
a = -b;
a++;
--b;
a = &b;
a = !b;
a = sizeof(b);
双目运算符前后有空格
a = b + c;
a = b * c;
if(a >= b)
{
a = b << 2;
}
代码行过长时,适当压缩优先级较低表达式内的空格
if((a>b) && (b<c) && (x==y))
for(i=0; i<10; i++)