女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

代碼編程規(guī)范的排版風(fēng)格

汽車電子技術(shù) ? 來(lái)源:大橙子瘋嵌入式 ? 作者:大橙子瘋 ? 2023-02-15 14:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

這篇重點(diǎn)介紹一下代碼編程的排版風(fēng)格和自動(dòng)排版工具

代碼規(guī)范化中的排版基本上有七大風(fēng)格,主要體現(xiàn)在縮進(jìn)、空行、代碼行、空格、成對(duì)書(shū)寫(xiě)、對(duì)齊、注釋七方面的書(shū)寫(xiě)規(guī)范上。

規(guī)范要求

縮進(jìn)

程序塊采用縮進(jìn)風(fēng)格編寫(xiě),縮進(jìn)可以使程序更有層次感,每次縮進(jìn)一般為 4 個(gè)空格(部分要求為一個(gè)制表符Tab;我個(gè)人喜歡用空格,因?yàn)橹票矸煌庉嬈骺s進(jìn)不同,雖然能設(shè)置,但是麻煩)

原則是:如果地位相等,則不需要縮進(jìn);如果屬于某一個(gè)代碼的內(nèi)部代碼就需要縮進(jìn)


空行

空行起著分隔程序段落的作用??招械皿w將使程序的布局更加清晰??招胁粫?huì)浪費(fèi)內(nèi)存,雖然在文檔中比較多,但是值得

  1. 定義變量后要空行。盡可能在定義變量的同時(shí)初始化該變量,即遵循就近原則;如果變量的引用和定義相隔比較遠(yuǎn),那么變量的初始化就很容易被忘記。若引用了未被初始化的變量,就會(huì)導(dǎo)致程序出錯(cuò)
  2. 每個(gè)函數(shù)定義結(jié)束之后都要加空行
  3. 結(jié)合1、2兩點(diǎn)綜合來(lái)說(shuō),相對(duì)獨(dú)立的程序塊之間、變量說(shuō)明之后必須加空行。比如上面幾行代碼完成的是一個(gè)功能,下面幾行代碼完成的是另一個(gè)功能,那么它們中間就要加空行。這樣看起來(lái)更清晰
1isFoo = true;
 2// 空行
 3if (isFoo) 
 4{
 5    bar();
 6} 
 7else 
 8{
 9    anotherBar();
10}
11// 空行
12isBar = false;

代碼行

  1. 一行代碼只做一件事情,如只定義一個(gè)變量,或只寫(xiě)一條語(yǔ)句。這樣的代碼容易閱讀,并且便于寫(xiě)注釋
  2. iffor 、dowhilecaseswitchdefault等語(yǔ)句獨(dú)占一行,執(zhí)行語(yǔ)句不得緊跟其后

不論執(zhí)行語(yǔ)句有多少行,就算只有一行也要加{},并且遵循對(duì)齊的原則,這樣可以防止書(shū)寫(xiě)失誤

  1. 一條語(yǔ)句不能過(guò)長(zhǎng),如不能拆分需要分行寫(xiě),對(duì)于目前大多數(shù)的PC來(lái)說(shuō),132 比較合適(80/132是VTY常見(jiàn)的行寬值)

對(duì)于新PC寬屏顯示器較多的產(chǎn)品來(lái)說(shuō),可以設(shè)置更大的值; 且目前的軟件大多都能設(shè)置并顯示這個(gè)寬度的提示線

1// 錯(cuò)誤示范
2if (...){...}
3
4// 正確示范
5if (...)
6{
7    ...
8}

空格

  1. 關(guān)鍵字之后要留空格。像 constcase 等關(guān)鍵字之后至少要留一個(gè)空格,否則無(wú)法辨析關(guān)鍵字。像 if、for、while 等關(guān)鍵字之后應(yīng)留一個(gè)空格再跟左括號(hào)(,以突出關(guān)鍵字
1// 錯(cuò)誤示范
2if(...)
3
4// 正確示范
5if (...)
  1. 函數(shù)名之后不要留空格,應(yīng)緊跟左括號(hào)(,以與關(guān)鍵字區(qū)別
1// 錯(cuò)誤示范
2void move (char *buf, uint32_t length);
3
4// 正確示范
5void move(char *buf, uint32_t length);
  1. (向后緊跟;),、;這三個(gè)向前緊跟;緊跟處不留空格
1// 錯(cuò)誤示范
2move ( buf , 35 ) ;
3
4// 正確示范
5move(buf, 35);
  1. ,之后要留空格。如果;不是一行的結(jié)束符號(hào),其后要留空格
1// 錯(cuò)誤示范
2move(buf,35);
3
4// 正確示范
5move(buf, 35);
  1. 賦值運(yùn)算符、關(guān)系運(yùn)算符、算術(shù)運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符,如 =、==、!=、+=-==、/=、%=>>=<<=、&=^=、|=、<、<=、>、>=、+、/、%、&;|、&&、||、<<、>>;^ 等雙目運(yùn)算符的前后應(yīng)當(dāng)加空格(運(yùn)算符“%”是求余運(yùn)算符,與 printf%d“%”不同,所以 %d 中的“%”前后不用加空格)
1// 錯(cuò)誤示范
2num+=5;
3hex=hex&0x05;
4printf("% d", num);
5
6// 正確示范
7num += 5;
8hex = hex & 0x05;
9printf("%d", num);
  1. 單目運(yùn)算符 !~、++、--、、*& 等前后不需要加空格
1// 錯(cuò)誤示范
2cnt ++;
3boolVal = ! boolVal;
4
5// 正確示范
6cnt++;
7boolVal = !boolVal;
  1. 像數(shù)組符號(hào)[]、結(jié)構(gòu)體成員運(yùn)算符.、和指向結(jié)構(gòu)體成員運(yùn)算符->,這類操作符前后不加空格
1// 錯(cuò)誤示范
2char buf [ 50 ];
3tInfo -> mem = 0;
4
5// 正確示范
6char buf[50];
7tInfo->mem = 0;
  1. 對(duì)于表達(dá)式比較長(zhǎng)的for語(yǔ)句和if語(yǔ)句,為了緊湊起見(jiàn),可以適當(dāng)?shù)厝サ粢恍┛崭?。?forif 后面緊跟的空格不可以刪,其后面的語(yǔ)句可以根據(jù)語(yǔ)句的長(zhǎng)度適當(dāng)?shù)厝サ粢恍┛崭瘛@纾?code>for (i=0; i<10; i++),即for和分號(hào)后面保留空格,=< 前后的空格去掉

成對(duì)書(shū)寫(xiě)

成對(duì)的符號(hào)一定要成對(duì)書(shū)寫(xiě),如 ()、{}。不要寫(xiě)完左括號(hào)然后寫(xiě)內(nèi)容最后再補(bǔ)右括號(hào),這樣很容易漏掉右括號(hào),尤其是寫(xiě)嵌套程序的時(shí)候。


對(duì)齊

對(duì)齊主要是針對(duì)大括號(hào){}說(shuō)的

  1. {}分別都要獨(dú)占一行?;橐粚?duì)的{}要位于同一列,并且與引用它們的語(yǔ)句左對(duì)齊
  2. { }之內(nèi)的代碼要向內(nèi)一個(gè)縮進(jìn),且同一地位的要左對(duì)齊,地位不同的繼續(xù)縮進(jìn)
1// 錯(cuò)誤示范
 2int main(void){
 3int val = 0;
 4}
 5
 6// 正確示范
 7// 錯(cuò)誤示范
 8int main(void)
 9{
10    int val = 0;
11}

注釋

C語(yǔ)言中一行注釋一般采用//…,多行注釋必須采用 /*…*/。注釋通常用于重要的代碼行或段落提示。在一般情況下,源程序有效注釋量必須在 20% 以上。雖然注釋有助于理解代碼,但注意不可過(guò)多地使用注釋,注釋太多會(huì)讓人眼花繚亂。

  1. 注釋用使用對(duì)代碼的功能做解釋,并不是說(shuō)明是怎么做的
  2. 對(duì)于一些巧妙地、用特殊方式實(shí)現(xiàn)功能的代碼,可以使用注釋說(shuō)明這樣做的目的或好處等
  3. 代碼十分明確的,一目了然的,則不必增加注釋,否則就是多余的注釋,如 int minValue = 5; // 定義最小值為5
  4. 邊寫(xiě)代碼邊注釋,修改代碼的同時(shí)要修改相應(yīng)的注釋,以保證注釋與代碼的一致性,不再有用的注釋要?jiǎng)h除
  5. 每一條宏定義的右邊必須要有注釋,說(shuō)明其作用
  6. 相關(guān)函數(shù)和結(jié)構(gòu)體等需要注釋,具體注釋方式請(qǐng)參考文檔中的“注釋規(guī)范”內(nèi)容

排版工具


[嵌入式軟件開(kāi)發(fā)常用軟件]中提到的源格式化工具Astyle,官網(wǎng)地址

http://astyle.sourceforge.net/

Astyle 是一個(gè)開(kāi)源的源碼格式化工具插件,可以集成在 KEIL、IAR 或者文本編輯器等多款軟件中,作為一個(gè)腳本自動(dòng)格式話代碼風(fēng)格,十分方便。

根據(jù)上述排版風(fēng)格,我設(shè)置的指令是:

--style=allman -t -xV -C -f -p -H -k3 -y -xb -j -U %f

如下圖,隨便打開(kāi)一個(gè)糟糕的代碼文件,通過(guò) KEIL 集成的 Astyle工具自動(dòng)格式化代碼風(fēng)格。

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3826

    瀏覽量

    82923
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4899

    瀏覽量

    70642
  • 編輯器
    +關(guān)注

    關(guān)注

    1

    文章

    822

    瀏覽量

    31991
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Linux C語(yǔ)言的編程規(guī)范

    Linux有獨(dú)特的編程風(fēng)格,在內(nèi)核源代碼目錄Documentation/CodingStyle,詳細(xì)描述代碼風(fēng)格
    發(fā)表于 07-21 14:48 ?580次閱讀

    MATLAB 編程風(fēng)格指南

    thebeginning.”(良好的寫(xiě)作規(guī)范的程序比糟糕的寫(xiě)作規(guī)范的要好,因?yàn)樗麄兙哂休^少的錯(cuò)誤、易于調(diào)試與修改,因此,從一開(kāi)始就考慮風(fēng)格是很重要的)。本指南列舉的MATLAB 代碼
    發(fā)表于 09-22 16:19

    FPGA實(shí)戰(zhàn)演練邏輯篇39:代碼風(fēng)格與書(shū)寫(xiě)規(guī)范

    代碼風(fēng)格與書(shū)寫(xiě)規(guī)范本文節(jié)選自特權(quán)同學(xué)的圖書(shū)《FPGA設(shè)計(jì)實(shí)戰(zhàn)演練(邏輯篇)》配套例程下載鏈接:http://pan.baidu.com/s/1pJ5bCtt 不同的人可能對(duì)代碼
    發(fā)表于 06-19 10:38

    Verilog HDL代碼書(shū)寫(xiě)規(guī)范

    1. 目的本規(guī)范的目的是提高書(shū)寫(xiě)代碼的可讀性、可修改性、可重用性,優(yōu)化代碼綜合和仿真的結(jié)果,指導(dǎo)設(shè)計(jì)工程師使用VerilogHDL規(guī)范代碼
    發(fā)表于 12-08 14:36

    Linux內(nèi)核編碼風(fēng)格(編程代碼風(fēng)格推薦)

    這是翻譯版本,英文原版是linux源碼Documentation文件夾下的CodingStyle一個(gè)良好風(fēng)格的程序看起來(lái)直觀、美觀,便于閱讀,還能有助于對(duì)程序的理解,特別在代碼量比較大情況下更顯
    發(fā)表于 08-24 09:45

    C語(yǔ)言編程的基本規(guī)范有哪些?

    為了提高源程序的質(zhì)量和可維護(hù)性,從而最終提高軟件產(chǎn)品生產(chǎn)力,特編寫(xiě)此規(guī)范。本標(biāo)準(zhǔn)規(guī)定了程序設(shè)計(jì)人員進(jìn)行程序設(shè)計(jì)時(shí)必須遵循的規(guī)范。本規(guī)范主要針對(duì)單片機(jī)編程語(yǔ)言和08編譯器而言,包括
    發(fā)表于 02-24 07:22

    嵌入式軟件開(kāi)發(fā)中所總結(jié)出編程規(guī)范經(jīng)驗(yàn)

    〇、前言代碼編程我認(rèn)為也是一門藝術(shù),優(yōu)美的代碼使人賞心悅目。然而編程規(guī)范并沒(méi)有唯一的行業(yè)標(biāo)準(zhǔn),就像windows和linux的
    發(fā)表于 12-15 06:00

    單片機(jī)程序設(shè)計(jì)編程規(guī)范分享

    嚴(yán)格,品質(zhì)要求高的軟件公司對(duì)員工編寫(xiě)代碼風(fēng)格都有硬性規(guī)定,例如縮排的使用,TAB 的長(zhǎng)度,函數(shù)變量的命名方式. 這些規(guī)定的明顯好處是可以統(tǒng)一規(guī)范不同程序員所編制的代碼,提升程序
    發(fā)表于 09-25 08:06

    華為軟件編程規(guī)范下載

    華為軟件編程規(guī)范下載 :1 排版 2 注釋3 標(biāo)識(shí)符命名4 可讀性5 變量、結(jié)構(gòu)6 函數(shù)、過(guò)程7 可測(cè)性8 程序效率9 質(zhì)量保證10 代碼編輯、編譯、審查11
    發(fā)表于 04-15 10:48 ?16次下載
    華為軟件<b class='flag-5'>編程</b><b class='flag-5'>規(guī)范</b>下載

    C#編程代碼規(guī)范

    C#編程代碼規(guī)范 注:目的:為了保證開(kāi)發(fā)隊(duì)伍中的所有程序員都能夠理解其他人編寫(xiě)的代碼。 參考: 《華為編碼規(guī)范和范
    發(fā)表于 02-09 16:11 ?81次下載

    開(kāi)關(guān)電源的PCB設(shè)計(jì)(布局、排版、走線)規(guī)范

    開(kāi)關(guān)電源的PCB設(shè)計(jì)(布局、排版、走線)規(guī)范
    發(fā)表于 09-06 16:03 ?0次下載

    關(guān)于Linux的內(nèi)核代碼風(fēng)格

    從而導(dǎo)致的問(wèn)題。因?yàn)楫?dāng)時(shí)代碼量不大,所以解決問(wèn)題的時(shí)間相對(duì)較少。在代碼量增大的情況下可以借助工具進(jìn)行自動(dòng)修改。 快速修改編碼風(fēng)格的工具 scripts/checkpatch.pl 這是一個(gè)檢查patch是否符合內(nèi)核編碼
    的頭像 發(fā)表于 04-25 14:50 ?2069次閱讀

    RT-Thread 編程風(fēng)格

    ,其中 代碼編寫(xiě)規(guī)范 就是很重要的一環(huán)。 RT-Thread 編程風(fēng)格 這是一份 RT-Thread 開(kāi)發(fā)人員的開(kāi)發(fā)指引。RT-Thread 做為一份開(kāi)源軟件,它需要由不同的人采用合作
    的頭像 發(fā)表于 12-06 19:55 ?1425次閱讀

    代碼編程規(guī)范之命名規(guī)范

    標(biāo)識(shí)符的命名規(guī)則歷來(lái)是一個(gè)敏感話題,典型的命名風(fēng)格如unix風(fēng)格、windows風(fēng)格等,從來(lái)無(wú)法達(dá)成共識(shí)。實(shí)際上,各種風(fēng)格都有其優(yōu)勢(shì)也有其劣勢(shì),而且往往和個(gè)人的審美觀有關(guān)。對(duì)標(biāo)識(shí)符定義
    的頭像 發(fā)表于 02-15 14:57 ?1859次閱讀

    代碼編程規(guī)范之注釋風(fēng)格

    注釋的原則是有助于對(duì)程序的閱讀理解以及提供二次開(kāi)發(fā)所需文檔,注釋的方式有很多,但是業(yè)內(nèi)常用的規(guī)范是 Doxygen 代碼注釋規(guī)范。遵循原則為,說(shuō)明性文件、函數(shù)接口必須充分注釋說(shuō)明。全局變量需要說(shuō)明功能及取值范圍,需要自行處理資料
    的頭像 發(fā)表于 02-15 15:01 ?2217次閱讀
    <b class='flag-5'>代碼</b><b class='flag-5'>編程</b><b class='flag-5'>規(guī)范</b>之注釋<b class='flag-5'>風(fēng)格</b>