版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
目錄目錄56789宏1if{...//program}_ind_ni1if{...//program}_ind_niif{...//program}_ind_niperm_count_msg.head.len+_SIZE_PER_FRAM*sizeof(_ULact_task_table[frame_idS_TASK_CHECK_NUMBER+== e(_itemreport_or_not_flag=((taskno<&&_item_valid&&&&_item_valid&&(act_task_table[taskno].result_data!=if((taskno<&& _item_valid{...//program}if((taskno<&& _item_valid{...//program}for(i=0,j=0;(i<BufferKeyword[word_index].word_length)&&(j<NewKeyword.word_length);i++,j++){...//program}for(i(i<{0,j=_word_length)&&(j<...//program}pare((BYTE*)&(BYTE*)&sizeof _flash_act_duration(_item,frame_id+index,_objectrect.length=0;rect.width=rect.length=rect.width=11-7:if、forrect.length=rect.width=11-7:if、for、do、while、case、switch、default等語句自占一行,且if、fordo、whileif(pUserCR==NULL)if(pUserCR=={}for(...)...//program}if{...//program}voidle_fun(void{...//}for{...//}if{...//}for{...//}if{...//}void{void...//program}11-11C/C++語言中括號已經(jīng)是最清晰的標志了。a,b,、if(current_time>=a=bif(current_time>=a=b+*==b^*p=內(nèi)容操作"*"flagisEmpty非操作"!"p=地址操作"&p->id;if(a>=b&&c>?1-1:一行程序以小于80字符為宜,不要寫得過長2Copyright(C),1988-Tech.2Copyright(C),1988-Tech..Filename::Date//FunctionList://1.明1.2....(C),1988-Tech..::<author><time>>buildthis(C),1988-Tech..::<author><time>>buildthis12-4:函數(shù)頭部應進行注釋,列出:函數(shù)的目的/關系(函數(shù)、表)CalledTablesedTableUpdated://被修改的表(此項僅對于牽扯到數(shù)據(jù)庫操作的程序/*getreplicatesubsystemandnet/*getreplicatesubsystemandnet_ind_ni_ind_ni/*getreplicatesubsystemandnet/*getreplicatesubsystemandnet_ind_ni/*activeknumber#defineMAX_ACT_TASK_NUMBER(包括數(shù)組、結構、類、枚舉等)/*senumS{erfacewithrimitivemessagenameN_UNITDATA_IND,/*notifyuserunitomecannot(包括數(shù)組、結構、類、枚舉等)/*senumS{erfacewithrimitivemessagenameN_UNITDATA_IND,/*notifyuserunitomecannot/*notifyusertheNo.7/*thismessage12-11TheErrorCodewhentranslateGlobalfailure,as1-GTTable02SOthers-nouseGTonlyfunctionTranslate()inthismodualcanmodifyit,andothermodulecanvisititthroughcall*/thefunctionGetGTTransErrorCode()BYTEvoid le_fun(void{/*codeonecomments*/CodeBlockOne/*codetwocommentsCodeBlock}void{le_fun(void/*codeonecommentsCodeBlock/*codeCodeBlock}void{le_fun(void/*codeonecommentsCodeBlock/*codetwocommentsCodeBlock}/*code/*onecommentscodeonetwocode/*onecode/*twocode:casecasecase if{}{}casecase if{}{}ocasecasecasecase?2-1:避免在一行代碼或表達式的中注釋?2-1:避免在一行代碼或表達式的中注釋?2-2:通過對函數(shù)或過程、變量、結構等正自注釋的名以及合理地組織代碼的結構,使代碼成?2-3:在代碼的功能、意圖層次上進行注釋,提供有用、額外的信息/*ifreceive_flagisTRUE*/if(receive_flag)/*ifmtpreceiveamessagefromlinks*/if(receive_flag)?2-4:在程序塊的結束行右方加注釋標記,以表明某程序塊的結束if{//programwhile(index<{//program*endofwhileindexMAX_INDEX*while束*endofif*if?2-5:注釋格式盡,建議使用“/*……*/”?2-6:注釋應考慮程?2-6:注釋應考慮程序易讀及外觀排版文,除非能用非常流利準確的英文表,使用的語言若是中、英兼有的,建議多使用3temp可縮寫為flag;; incsisticmessage3temp可縮寫為flag;; incsisticmessage可縮寫為msg;13-4取單個字符(如i、j、k...),j,而編v局部變量(Local)(變量(Width13-5,比如采用UNIX示例:?3-1:除非必要,不要用數(shù)字或13-5,比如采用UNIX示例:?3-1:除非必要,不要用數(shù)字或較奇怪的字符來定義標識符#define#definevoidset_sls00(BYTEsls#define#definevoidset_udt_msg_sls(BYTEsls?3-2:在同產(chǎn)品內(nèi),應規(guī)劃好接口部分標識符(變量、結構、函數(shù)及常量止編譯時產(chǎn)。 ?3-3:用正確的反義詞組命名具有互斥意義的變量或作的函數(shù)等add/removeinsert/delete//create/destroyget/releaseput/getopen/closestart/show/increment/add/deletemin/maxnext/previoussend/receivecut/pasteold/sourcesource/up/add_user(BYTE*user_namedelete_user(BYTE*user_namedelete_user(BYTE*user_name?3-4:除了編譯開關/頭文件等特殊應用,應避免使用結尾的定義LE_TEST_之類以下劃線開始4word=ifif(high<<8)|||4word=ifif(high<<8)|||&&(a&<(c&high<<8a|b&&a&ca|b<c&dhigh<<8|low=(a|b&&a&c=(a|<<&&|&a|b<c&d=a|(b<c)if{e==e=...//}#defineTRUNK_IDLE#define01if{e==e=...//program}?4-1:源程序中關系較為緊密的代...//program}?4-1:源程序中關系較為緊密的代碼應盡可能相rect.length=10;char_poi=str;rect.width=rect.length=rect.width5char_poi=?4-2:不要使用難懂的技巧性很高的語句,除非很有必要時說* _poi+++=*++_poi+=s_poi//此二語句功能相當于“* _poi+++=1; _poi1*_poi+=1;5Ss,ss5Ss,sss。 的難度。的公共變?5-2:使用嚴格形式定義的、可移植的數(shù)據(jù)類型,盡量不要使用與具體硬件切的變量環(huán)境關系void{index_AX0x4000_AXBC3.1...//program}?5-3:結構的功能要單一,是針對一種事務的抽typedefstruct{name[8];/*student'sname/*student'sage/*student'ssex,asfollows/*0-FEMALE;1-MALEteacher_name[8];/*thestudentteacher'snameunisgned}/*histeachersextypedefstruct{unsignedcharname[8];/*teachernameunisgnedchar/*teachersex,asfollows/*0-FEMALE;1-MALE{unsignedcharname[8];/*teachernameunisgnedchar/*teachersex,asfollows/*0-FEMALE;1-MALE}typedefstruct{/*student'sname/*student'sage/*student'ssex,as0-FEMALE;1MALE}teacher_ind;/*his?5-4:不要設計面面俱到、非常靈活的數(shù)據(jù)結構。?5-5:不同結構間的關系不要過于復雜typedef{}typedef{;}typedef{;;}?5-6:結構中元素的個數(shù)應適中。若結構中typedef{;;}?5-6:結構中元素的個數(shù)應適中。若結構中元素個數(shù)過多可考慮依據(jù)某種原則把元素組成不的子結構,以減少原結構中元素的個typedefstruct{}typedef{;}{};typedef{valid:;:}typedef{valid:;:}?5-8:結構的設計要盡量考慮向前兼容和以后的版本升級,并為某些未來可能的應用保留余(如預留一些空間等)?5-9:留心具體語言及編譯器處理不同數(shù)據(jù)類型的原則及有關細節(jié)?5-10:編程時,要注意數(shù)據(jù)類型的強制轉換?5-11:對編譯系統(tǒng)默認的數(shù)據(jù)類型轉換,也要有充分的認識charunsignedchr=-examchrexam?5-12:盡量減少沒有必要的數(shù)據(jù)類型默charunsignedchr=-examchrexam?5-12:盡量減少沒有必要的數(shù)據(jù)類型默認轉換與強制轉換?5-13:合理地設計數(shù)據(jù)并使用自定義數(shù)據(jù)類型,避免數(shù)據(jù)間進行不必要的類型轉換?5-14:對自定義數(shù)據(jù)類型進行恰當命名,使它成為自描述性的,以提高代碼可讀性。注意命名方式在同一產(chǎn)品中。charBYTE;shortfloatDISTANCE;floatSCORE;?5-15用于分布式環(huán)境或不同CPU間通信環(huán)境的數(shù)據(jù)結構時,必須序、使用的位域及字節(jié)對齊等問題unsignedshorttypedef{el765012}如下 elCPU生成短整數(shù)及位域的方式內(nèi)存:12...()examexam低字節(jié)exam012...(內(nèi)存:12...()examexam高字節(jié)exam7}如下 elCPU生成短整數(shù)及位域的方式內(nèi)存:12...()examexam低字節(jié)exam012...(內(nèi)存:12...()examexam高字節(jié)exam765...(這18|long1|long1|long1||||long2|long2|long2||66 {paraExamtemp//Square_Exam(}Exampara值,所以當控制重新回到“tempSquare_Exam{ paraExam=para;temp=);//信號[return}Exam=para;temp=);//信號[return}?6-1:防止將函數(shù)的參數(shù)作為工作變量voidsum_data({*sum*sum=for(count=0;count<num;{*sum+=ount]sum}}voidsum_data(*sum{countsum_temp=for(count=0;count<num;count{sum_temp+={countsum_temp=for(count=0;count<num;count{sum_temp+=}*sum=}?6-2:函數(shù)的規(guī)模盡量限制在200行以內(nèi)?6-3:一個函數(shù)僅完成一件功能?6-4:為簡單功能編寫函數(shù) value=(a>b)?a:bmax{return((a>b)?a:}value=#defineb)(((a)>(b))?(a):value=?6-5:不要設計多用途面面俱到的函數(shù)。?6-6:函數(shù)的功能應該是可的,也就是只要輸入?6-5:不要設計多用途面面俱到的函數(shù)。?6-6:函數(shù)的功能應該是可的,也就是只要輸入數(shù)據(jù)相同就應產(chǎn)生同樣的輸出“部, {eger_sum(basesum0 icfor(index=1;index<=base;{sum+=}。return}?6-7:盡量不要編寫依賴于其他函實現(xiàn)的函數(shù)...//proc_Msg過程(函數(shù)procInput_Msg過程(函數(shù)...//...//?6-8:避免設計多參數(shù)函數(shù),不使用的procInput_Msg過程(函數(shù)...//...//?6-8:避免設計多參數(shù)函數(shù),不使用的參數(shù)從接口中去掉?6-9:非調度函數(shù)應減少或防止控制參數(shù),盡量只使用數(shù)據(jù)參數(shù)b,){if{return}{return}+}b{return(a+}b{return(a}?6-10:檢查函數(shù)所有參數(shù)輸入的有效性?b{return(a}?6-10:檢查函數(shù)所有參數(shù)輸入的有效性?6-11:檢查函數(shù)所有非參數(shù)輸入的有效性,如數(shù)據(jù)文件、公共變量等?6-12:函數(shù)名應準確描述函數(shù)的功能?6-13:使用動賓詞組為執(zhí)行某操作的函數(shù)命名。如果是OOP方法,可以只有動詞(名詞是象本身)void_record(rec_ind)input_record(void)unsignedcharget_current_color(void)建議6-14:避免使用無意義或含義不清的動詞為函數(shù)命名建議6-15:函數(shù)的返回值要清楚、明了,讓使用者不容易忽視錯誤情況?6-16:除非必要,最與函數(shù)返回值類型不同的變量,以編譯系統(tǒng)默認的轉換方式強制的轉換方式作為返回值返回?6-17:讓函數(shù)在調用點顯得易懂、容易理解?6-18:在調用函數(shù)填寫參數(shù)時,應盡量減少沒有必要的默認數(shù)據(jù)類型轉換或強制數(shù)據(jù)類型換。?6-19:避免函數(shù)中不必要語句,防止程序中 ?6-19:避免函數(shù)中不必要語句,防止程序中 ?6-20:防止把沒有關聯(lián)的語句放到一個函數(shù)中并voidInit_Var(void{Rect.length=Rect.width0*.x=.y=/*}voidInit_Rect(void{Rect.length=Rect.width0*}void{(void.x.y/*}?6-21:如果多段代碼重復做同一件事情,那么在函數(shù)的劃分上可能存}?6-21:如果多段代碼重復做同一件事情,那么在函數(shù)的劃分上可能存在問題?6-22:功能不明確較小的函數(shù),特別是僅有函數(shù)中,而不必單獨存在函數(shù)調用它時,應考慮把它合并?6-23:設計高扇入、合理扇出(小于7)的函數(shù)通常是?6-24:減少函數(shù)本身或函數(shù)間的遞歸調用>A?6-25:仔細分析模塊的功能及性能需求,并進一步細分,同時若有必要畫出有關數(shù)據(jù)流圖據(jù)此來進行模塊的函數(shù)劃分與組織出?6-26:改進模塊中函數(shù)的結構,降低函數(shù)間的耦合度,并提高函數(shù)的獨立?6-26:改進模塊中函數(shù)的結構,降低函數(shù)間的耦合度,并提高函數(shù)的獨立性以及代碼可讀性效率和性。優(yōu)化函數(shù)結構時,要遵守以下原。?6-27:在多任務操作系統(tǒng)的環(huán)境下編程,要注意函數(shù)可重入性的構造?6-28:避免使用BOOL參數(shù)?6-29:對于提供了返回值的函數(shù),時最好使用其返回值時,可以用一#define7可測 7可測 的安裝與拆卸(通過調測開關)17-4:在進行集成測試/ #ifdef_EXAM_ASSERT_TEST_//voidexam_assert(char*file_name,{line_nof("\n[EXAM]Assertfailed:%s,linefile_name,line_noabort(}#defineEXAM_ASSERT(conditionif(conditionelse//exam_assert(__FILE,#defineEXAM_ASSERT(conditionif(conditionelse//exam_assert(__FILE,LINE__#else//#defineEXAM_ASSERT(condition)#endif/*endofASSERTexam_fun(unsignedchar*str{EXAM_ASSERTstrNULL);//...rogram}#defineEXAM_CONNECTIONLESS01#define s(EXAM_MESSAGE*msg{unsignedcharservice;/*messageserviceclassEXAM_ASSERT(msg#defineEXAM_CONNECTIONLESS01#define s(EXAM_MESSAGE*msg{unsignedcharservice;/*messageserviceclassEXAM_ASSERT(msg!=NULLservice=get_msg_service_class(msgEXAM_ASSERTserviceEXAM_CONNECTION...rogram}EXAM_ASSERT()==217-14的DEBUG版和正式版,而不要同時存在正式版本和DEBUG?7-2于?7-3#ifdef_EXAM_ASSERT_TEST_?7-2于?7-3#ifdef_EXAM_ASSERT_TEST_/*Notice:thisfunctiondoesnotcall'abort'toexitprogramvoidassert_report(char*file_name,{line_nof("\n[EXAM]ErrorReport:%s,linefile_name,line_no}ifASSERT_REPORT(conditionconditionelseassert_report(FILE,LINE#else#defineASSERT_REPORT(condition)#endif/*endofASSERT#defineASSERT_REPORT(condition)#endif/*endofASSERTmsg_handle(unsignedcharmsg_name,unsignedchar){switch(msg_name{case .........ASSERT_REPORTFALSE);//return}}8程序效說8程序效說unsignedcharunsignedshortstructfloat}typedefstruct{BYTE}typedefstruct{WORDstudent_index;BYTEsubject;float}typedefstruct{WORDstudent_index;BYTEsubject;float}for(ind=0;ind<MAX_ADD_NUMBER;{sum+=back_sum=sum;/*backupsum}forind{sum;forind<MAX_ADD_NUMBER;sum+=}back_sum=sum;/*backupsum?8-1:仔細分析有關算法,并進行優(yōu)化?8-2:仔細考查、分析系統(tǒng)及模塊處理輸入(如事務、消息等)的方式,并加以改進?8-3:對模塊中函數(shù)的劃分及組織方式進行分析、優(yōu)化,改進模塊中函數(shù)的組織結構,提高序效率?8-4?8-5。?8-6?8-4?8-5。?8-6?8-8for(row=0;row<100;{for(col=0;col<5;{sum+=}}for(col=0;col<5;{for(row=0;row<100;{sum+=}}?8-9?8-10for?8-10for(ind=0;ind<MAX_RECT_NUMBER;{if(data_type=={area_sum+=}{rect_length_sum+=rect[ind].length;rect_width_sum+=rect[ind].width;}}if(data_type=={for(ind=0;ind<MAX_RECT_NUMBER;{area_sum+=}}{for(ind=0;ind<MAX_RECT_NUMBER;{rect_length_sum+=rect[ind].length;rect_width_sum+=rect[ind].width;}}?8-11#definePAIradius=circle_length/(2*#definePAI_RECIPROCAL13.1416radius=circle_length*PAI_RECIPROCAL/?8-129質量保9質量保。。 typedefunsignedchar le_fun(BYTEgt_len,BYTE*gt_code{BYTEgt_buf=(BYTE*)malloc...//programcode,includecheckgt_bufifornot/*globaltitlelengtherror*/if(gt_len>MAX_GT_LENGTH){returnGT_LENGTH_ERROR}...//rogram/*globaltitlelengtherror*/if(gt_len>MAX_GT_LENGTH){returnGT_LENGTH_ERROR}...//rogram} le_fun(BYTEgt_len,BYTE*gt_code{BYTEgt_buf=(BYTE*)malloc(MAX_GT_LENGTH...//programcode,includecheckgt_bufornot/*globaltitlelengtherror*/if(gt_len>MAX_GT_LENGTH){freegt_buf);//return}...//rogram}。#defineMAX_USR_NUM10unsignedcharusr_login_[MAX_USR_NUM]=void{if{}}(unsignedcharusr_no[usr_no]=void{if{}}(unsignedcharusr_no[usr_no]= void{if{}}(unsignedcharusr_no[usr_no-[usr_no-1]=。MIDFARSYS_ALARM_proc(FIDhandleMIDFARSYS_ALARM_proc(FIDhandle{_UIi,switch(function_id{...//programcasefor(i=0;i<MAX_ALARM_MID;{if(alarm_module_list[i]==BAM_MODULE//||(alarm_module_list[i]=={for(j=0;j<ALARM_CLASS_SUM;{FAR_MALLOC(...}}}...//programcase...//programGet_Alarm_Module();//...//program}}處...//program}}處Get_Alarm_Module函數(shù)放在FID_INITIAL中(**)之前;要”與“==&&||=(pmsg-&=(pmsg-&&=(VALID_TASK_NO(taskno)&&DATA_NOT_ZERO(_data=(VALID_TASK_NO(taskno)&DATA_NOT_ZERO(_data?9-2?9-2?9-4?9-5unsignedcharsize;while(size0{...//program}charsize;//unsignedcharcharwhile(size-->={...//program}?9-7C語言中字符型變量,有效值范圍為-128127。故以下表達式的計算存在一charchr=sum=chr1127chr1charchr=sum=chr1127chr1chr上溢到-128128sumch
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年大型自動網(wǎng)印機項目可行性研究報告
- 2024年曬圖膠片項目可行性研究報告
- 2024年接線端子自動切粒機項目可行性研究報告
- 中秋節(jié)活動演講稿(6篇)
- 2025版體育賽事官方贊助商球隊合作協(xié)議3篇
- 2025年度果園產(chǎn)業(yè)扶貧與鄉(xiāng)村振興戰(zhàn)略合同2篇
- 2025至2030年中國簡易式電子架行業(yè)投資前景及策略咨詢研究報告
- 參觀實習工作報告(匯編9篇)
- 2025版重型吊車轉讓與定期檢修服務合同3篇
- 2025年度體育賽事贊助合作合同匯編大全3篇
- 2024年03月中國農(nóng)業(yè)發(fā)展銀行內(nèi)蒙古分行校園招考擬招錄人員筆試歷年參考題庫附帶答案詳解
- 2024年盾構操作工職業(yè)技能競賽理論考試題庫(含答案)
- (西北卷)名校教研聯(lián)盟2025屆高三12月聯(lián)考英語試卷(含答案解析)
- 金科新未來大聯(lián)考2025屆高三12月質量檢測語文試題(含答案解析)
- 江蘇省2025年高中學業(yè)水平合格考歷史試卷試題(含答案詳解)
- 云南省昆明市(2024年-2025年小學六年級語文)部編版期末考試(上學期)試卷及答案
- 《嬰幼兒常見病識別與預防》課件-嬰幼兒濕疹
- 遺傳群體文獻解讀集
- 工藝裝備環(huán)保性與安全性的設計要點
- [玻璃幕墻施工方案]隱框玻璃幕墻施工方案
- 國家開放大學電大本科《管理案例分析》2023-2024期末試題及答案(試卷代號:1304)
評論
0/150
提交評論