溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C++代碼怎么正確編寫(xiě)

發(fā)布時(shí)間:2022-03-22 15:58:43 來(lái)源:億速云 閱讀:175 作者:iii 欄目:互聯(lián)網(wǎng)科技

本篇內(nèi)容介紹了“C++代碼怎么正確編寫(xiě)”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

排版

(1)程序塊要采用縮進(jìn)風(fēng)格編寫(xiě),縮進(jìn)的空格數(shù)為4個(gè)。函數(shù)或過(guò)程的開(kāi)始、結(jié)構(gòu)的定義及循環(huán)、判斷等語(yǔ)句中的代碼都要采用縮進(jìn)風(fēng)格, case 語(yǔ)句下的情況處理語(yǔ)句也要遵從語(yǔ)句縮進(jìn)要求。

說(shuō)明:由于每個(gè)IDE的文本編輯器自動(dòng)縮進(jìn)的空格數(shù)可能不一樣,因此建議縮進(jìn)時(shí),手動(dòng)敲擊4個(gè)空格按鍵。

(2)相對(duì)獨(dú)立的程序塊之間、變量說(shuō)明之后,必須加空行。

示例: 如下例子不符合規(guī)范。

if (!valid_ni(ni))

{

    ... // program code

}

repssn_ind = ssn_data[index].repssn_index;

repssn_ni  = ssn_data[index].ni;

應(yīng)如下書(shū)寫(xiě):

if (!valid_ni(ni))

{

    ... // program code

}

repssn_ind = ssn_data[index].repssn_index;

repssn_ni  = ssn_data[index].ni;

(3)較長(zhǎng)的語(yǔ)句(如循環(huán)、判斷等語(yǔ)句或者函數(shù)等)(>80 字符)要分成多行書(shū)寫(xiě), 長(zhǎng)表達(dá)式要在低優(yōu)先級(jí)操作符處劃分新行, 操作符放在新行之首, 劃分出的新行要進(jìn)行適當(dāng)?shù)目s進(jìn), 使排版整齊, 語(yǔ)句可讀。

示例:

perm_count_msg.head.len = NO7_TO_STAT_PERM_COUNT_LEN

                          + STAT_SIZE_PER_FRAM * sizeof( _UL );

for (i = 0, j = 0; (i < BufferKeyword[word_index].word_length)

                    && (j < NewKeyword.word_length); i++, j++)

n7stat_flash_act_duration( stat_item, frame_id *STAT_TASK_CHECK_NUMBER

                                      + index, stat_object );

(4)不允許把多個(gè)短語(yǔ)句寫(xiě)在一行中, 即一行只寫(xiě)一條語(yǔ)句。

示例: 如下例子不符合規(guī)范。

rect.length = 0;  rect.width = 0;

應(yīng)如下書(shū)寫(xiě)

rect.length = 0;

rect.width  = 0;

(5)if、for、do、while、case、switch、default等語(yǔ)句自占一行, 且if、for、do、while等語(yǔ)句的執(zhí)行語(yǔ)句部分無(wú)論多少都要加括號(hào){}。

示例: 如下例子不符合規(guī)范。

if (pUserCR == NULL) return;

應(yīng)如下書(shū)寫(xiě):

if (pUserCR == NULL)

{

    return;

}

(6)程序塊的分界符(如C/C++ 語(yǔ)言的大括號(hào)‘{’ 和‘}’ )應(yīng)各獨(dú)占一行并且位于同一列, 同時(shí)與引用它們的語(yǔ)句左對(duì)齊。在函數(shù)體的開(kāi)始、類的定義、結(jié)構(gòu)的定義、枚舉的定義以及if、for、do、while、switch、case 語(yǔ)句中的程序都要采用如上的縮進(jìn)方式。

示例: 如下例子不符合規(guī)范。

for (...) {

    ... // program code

}

if (...)

    {

    ... // program code

    }

void example_fun( void )

    {

    ... // program code

    }

應(yīng)如下書(shū)寫(xiě)。

for (...)

{

    ... // program code

}

if (...)

{

    ... // program code

}

void example_fun( void )

{

    ... // program code

}

(7)在兩個(gè)以上的關(guān)鍵字、變量、常量進(jìn)行對(duì)等操作時(shí), 它們之間的操作符之前、之后或者前后要加空格; 進(jìn)行非對(duì)等操作時(shí), 如果是關(guān)系密切的立即操作符(如->), 后不應(yīng)加空格。

說(shuō)明: 采用這種松散方式編寫(xiě)代碼的目的是使代碼更加清晰。

由于留空格所產(chǎn)生的清晰性是相對(duì)的, 所以, 在已經(jīng)非常清晰的語(yǔ)句中沒(méi)有必要再留空格, 如果語(yǔ)句已足夠清晰則括號(hào)內(nèi)側(cè)(即左括號(hào)后面和右括號(hào)前面)不需要加空格, 多重括號(hào)間不必加空格, 因?yàn)樵贑/C++語(yǔ)言中括號(hào)已經(jīng)是最清晰的標(biāo)志了。

在長(zhǎng)語(yǔ)句中, 如果需要加的空格非常多, 那么應(yīng)該保持整體清晰, 而在局部不加空格。給操作符留空格時(shí)不要連續(xù)留兩個(gè)以上空格。

示例:

(1) 逗號(hào)、分號(hào)只在后面加空格。

int a, b, c;

(2) 比較操作符, 賦值操作符“=”、“+=”, 算術(shù)操作符“+”、“%”, 邏輯操作符“&&”、“&”, 位域操作符“<<”、“^”等雙目操作符的前后加空格。

if (current_time >= MAX_TIME_VALUE)

a = b + c;

a *= 2;

a = b ^ 2;

(3) "!"、"~"、"++"、"--"、"&"(地址運(yùn)算符)等單目操作符前后不加空格。

*p = 'a';        // 內(nèi)容操作"*"與內(nèi)容之間

flag = !isEmpty; // 非操作"!"與內(nèi)容之間

p = &mem;        // 地址操作"&" 與內(nèi)容之間

i++;             // "++", "--"與內(nèi)容之間

(4) "->"、"."前后不加空格。

p->id = pid;     // "->"指針前后不加空格

(5) if、for、while、switch等與后面的括號(hào)間應(yīng)加空格, 使if等關(guān)鍵字更為突出、明顯。

if (a >= b && c > d)

“C++代碼怎么正確編寫(xiě)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

c++
AI