C语言编程规范和约定.pdf
《C语言编程规范和约定.pdf》由会员分享,可在线阅读,更多相关《C语言编程规范和约定.pdf(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言编程规范和约定排版排版缩进 缩进 空行空行 空格 代码长度缩进缩进缩进量if(1=reset_flag)缩进量=4 用空格取代TABreset_state();else用空格取代TABelsefor(n=1;n20;n+)update_state();if(1=reset_flag)reset state();reset_state();elsefor(n=1;n=MAX_READ_SIZE)return1;flag=read_port_status();s32_tread_data(u8_t*buf,u32_tsize)空格的使用(建议)运算符=、=、+、*、/、=、BUF SIZE
2、1)?BUF SIZE 1:count+1;count=(count=BUF_SIZE1)?BUF_SIZE1:count+1;elseif(1=status)|(2=status)&(20=count)|(0=count)for(n=1;n、.前后不加空格前后不加空格+、前后不加空格(不要将+、用于有歧义的地方)数组名和之间、函数名和()之间不加空格if(1=reset flag)if(1=reset_flag)reset_state();ary 5+;ary 5+;dataflag=1;status.overflow=1;elsefor(n=1;n=BUF_SIZE1)?BUF_SIZE1
3、:count+1;elseif(1=status)|(2=status)|(8=status)()|()|()&(20=count)|(0=count)&(0=flag)for(n=1;n20;n+)index=read_port()+(count*sizeof(data_t);折行perm_count_msg.head.len=NO7_TO_STAT_PERM_COUNT_LEN+STAT_SIZE_PER_FRAM*sizeof(array);act_task_tableframe_id*STAT_TASK_CHECK_NUMBER+index.occupied=stat_poiindex
4、.occupied;act_task_tabletaskno.duration_true_or_false=SYS_get_sccp_statistic_state(stat_item);report_or_not_flag=(taskno MAX_ACT_TASK_NUMBER)&(n7stat_stat_item_valid(stat_item)&(act task tabletaskno result data!=0);&(act_task_tabletaskno.result_data!=0);for(i=0,j=0;(ifirst word length)&(jsecond word
5、 length);(ifirst_word_length)&(jsecond_word_length);i+,j+)./programcode./p og acode折行折行n7stat_str_compare(u8_t*)&stat_object,(u8 t*)&(act task tabletaskno stat object)(u8_t)&(act_task_tabletaskno.stat_object),sizeof(data_t);rect.length=0;rect.width=0;强制折行if(pUserCR=NULL)return;强制折行注释注释基本要求 基本要求 模板模板
6、基本要求基本要求 英文英文 需要大约20%的程序注释尽量让代码本身说明功能 尽量让代码本身说明功能 注释和程序一同更新 防止歧义 减少缩写 减少缩写 对于协议标准编程可以加入标准文献的索引(文献名称章节号)引(文献名称、章节号)注释位置注释位置 逻辑段落的注释放在段落前一行 语句的注释放在语句之后 注释和被注释的代码之间没有空行注释和被注释的代码之间没有空行voiddo_it()/functionoffollowinginitparagraphinit_data1();init data2();init_data2();/functionoffloowing doparagraphdo ste
7、p1();_p();do_step2();do_step3(3);/specialnotesonthisline注释位置注释位置length+;/increaselength/functionoffollowingcode没有必要注释g/去除空行if()do_func();注释方法注释方法尽量使用作为程序内部注释 尽量使用/作为程序内部注释/*/用于文件、函数头部注释段落/用于文件、函数头部注释段落 在不同条件下可能被使用的代码不能注释掉用 fd f掉,用#if0#endif注释内容注释内容文件头需要注释段落 文件开头需要注释段落 函数开头需要注释段落函数开头需要注释段落 全局变量需要详细注释
8、 特殊功能的局部变量需要详细注释 变量bit域详细注释变量bit域详细注释 为特殊功能的宏定义加注释注释例子注释例子#defineMAX ACT TASK NUMBER1000/activestatistictasknumber_/statevalueforglobalvariablestate#defineSTATE_A0#defineSTATE_B1#define STATE_C2/bitmaskforregisterREG_MODE,address0 xC000F000#defineBIT_MASK_RD(10)#defineBIT_MASK_IRQ(13)d fiSS(000)#def
9、ineBIT_MASK_START(0 xFF00)u8_tstatus;/bit0:overflow/bit1 3:co nter/bit13:counter/bit4:IRQstatus/注释例子注释例子voidexample_fun(void)/codeonecomments使用和代码相同的缩进do_a();do_b();的缩进voidexample fun(void)p_()/codeonecommentsdo_a();do_b();注释例子voidexample_fun(void)注释例子int n;for(n=0;n32;n+)switch(state)caseA:;break;b
10、reak;caseB:;break;default:;break;/switch(state)()/for(n=0;n32;n+)模板(文件头)模板(文件头)/*/*Copyright(C),20 xx20 xx,xxxGroupFilename:xxxDescription:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx总体Description:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxFunctionList:总体描述FunctionList:fun
11、c1:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfunc2:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx主要函数描述History:Author:xxxVersion:xxxDate:xxxEmail:xxxDescription:Create数描述修改记录描述pAuthor:xxxVersion:xxxDate:xxxEmail:xxxDescription:Fixxxxbugs录描述*/模板(函数头)模板(函数头)/*/*Name:xxxx(函数名称)Description:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 编程 规范 和约
限制150内