一、缩进的空格数为4个。最好配置代码编辑器将TAB键设置为空格替换,避免出现另一个编辑器打开时格式变乱的情况。

例如Notepad++设置

C语言代码规范(一)缩进与换行-编程知识网

KEIL设置

C语言代码规范(一)缩进与换行-编程知识网

二、“{” 和 “}”各自独占一行。

    不规范例子:

for(i = 0; i < student_num; i++)
{   if((score[i] >= 0) && (score[i]) <= 100)total_score += score[i];elseprintf(" error! score[%d] = %d\n", i, score[i]);
}

    其中if应该换行,让“{”独占一行。

    规范的例子:

for(i = 0; i < student_num; i++)
{	if((score[i] >= 0) && (score[i]) <= 100){total_score += score[i];}else{printf(" error! score[%d] = %d\n", i, score[i]);}
}

   

三、 当if的判断和执行句子较短时,也需要换行。

    不规范如下格式:

if(student_num > 100)i = 0;

    规范示例:

if(student_num > 100)
{i = 0;
}

四、if判断内容较长,可以考虑换行提高可阅读性

    不规范例子:

if((print_montion[0]!=SYS_PARAM.Motor_PARAM[0].Set_Speed)||(print_montion[1]!=SYS_PARAM.Motor_PARAM[1].Set_Speed))
if((M_rise && M_rise_temp)||(M_stretch && M_stretch_temp)||(M_revolve && M_revolve_temp))break;

    规范示例:

if( (print_montion[0] != SYS_PARAM.Motor_PARAM[0].Set_Speed) ||(print_montion[1] != SYS_PARAM.Motor_PARAM[1].Set_Speed) )
if( (M_rise    && M_rise_temp) ||(M_stretch && M_stretch_temp) ||(M_revolve && M_revolve_temp) )
{break;
}

    换行后也要注意缩进对齐,使得排版整洁。

五、switch-case语句标准格式

    规范示例:

switch(variable)
{case value1:...break;case value2:...break;...default:...break;
}

六、if、for、do、while、case、switch、default语句独占一行,且if、for、do、while语句的执行语句部分无论多少都要加大括号"{}"。

七、严禁横向代码!!!

不规范示例:

if ( M_rise )   {EN_s = Enable; TIM_CCxNCmd(TIM1,TIM_Channel_1, ENABLE); }
if ( M_stretch ){EN_q = Enable; TIM_CCxNCmd(TIM1,TIM_Channel_2, ENABLE); }
if ( M_revolve ){EN_x = Enable; TIM_CCxNCmd(TIM1,TIM_Channel_3, ENABLE); }

修改:(这里的例子命名不规范,大家不要学)

	if(M_rise){EN_s = Enable; TIM_CCxNCmd(TIM1, TIM_Channel_1, ENABLE); } if(M_stretch){EN_q = Enable; TIM_CCxNCmd(TIM1, TIM_Channel_2, ENABLE); } if(M_revolve){EN_x = Enable; TIM_CCxNCmd(TIM1, TIM_Channel_3, ENABLE); } 

不要非主流自创风格,记住代码是给别人读的!