找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3004|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

我的C程序書寫風(fēng)格

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:75263 發(fā)表于 2015-3-25 00:14 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
關(guān)于寫程序的小問題,想到那里說到那里

1.每個(gè)函數(shù)的前面有一段綜合性的注釋,這個(gè)綜合性注釋的首尾行是由//開頭的88個(gè)字符"-"組成, 有人不用"-"而是用"*",我覺得用"*"不太合適. 因?yàn)镃里面/*  */是"成段地"定義注釋的, 在調(diào)試階段可能需要臨時(shí)把某一部分代碼用/* */包圍起來當(dāng)作注釋不參與編譯, 而此時(shí),上述的每個(gè)函數(shù)的綜合性注釋中如果用"//********....."的格式,就可能引起編譯系統(tǒng)發(fā)出注釋嵌套警告.進(jìn)一步地,在代碼內(nèi)部的注釋中應(yīng)盡量避免出現(xiàn)"/*"的組合.我的做發(fā)是,僅僅在代碼調(diào)試階段用/* */臨時(shí)屏蔽部分代碼,真正的注釋全部用單行注釋,也就是只用//引進(jìn)注釋.
2.函數(shù)內(nèi)部每個(gè)語句后面的局部性注釋,我喜歡做右端對齊,很多人會(huì)覺得這是很費(fèi)力的怪異的做法,但我習(xí)慣了而且關(guān)鍵是喜歡這樣做,確實(shí),注釋右端對齊,需要多打很多的空格,但是這樣做以后代碼看起來會(huì)舒服很多,便于調(diào)試.
2.在代碼或注釋中凡是需要空格的地方永遠(yuǎn)只使用空格鍵,決不使用Tab鍵產(chǎn)生空格,這是因?yàn)榇a很可能需要放到某種文本編輯器中做排版操作,然后打印出來,不同的編輯器中Tab鍵的處理有差異,如果使用Tab鍵產(chǎn)生若干個(gè)空格,有可能文本的格式出錯(cuò).
3.注釋也要體現(xiàn)結(jié)構(gòu)化的思想.每一個(gè)由"{" 和 "}" 包圍的代碼塊, 都會(huì)完成某個(gè)相對獨(dú)立的功能.我的代碼中,"{" 和 "}"都肯定占用單獨(dú)的行,在它們所在的行中,就可以寫字?jǐn)?shù)較多的注釋,因?yàn)樵谶@一行里,屬于代碼的部分只有一個(gè)符號(hào),空余的書寫位置就多了."{"和"}"后面的注釋幾乎是完全一樣的,這樣從前往后或者反過來瀏覽代碼的時(shí)候,代碼的模塊化結(jié)構(gòu)通過注釋就進(jìn)一步強(qiáng)化了,看起來更舒服.當(dāng)注釋的文字確實(shí)不需要那么多的時(shí)候,我會(huì)用"-"或者"="在左端補(bǔ)齊,而且只要可能,一定用字符"v"和"^"分別做為注釋中的第一個(gè)字符的,它們說明了注釋所指的代碼是位于注釋之前還是之后.
4.注釋的文本長度不要太長,當(dāng)然也不可太短,一般來說80~90個(gè)字符比較合理.我傾向于90個(gè)字符,在代碼編輯環(huán)境中,當(dāng)光標(biāo)位于行尾時(shí),光標(biāo)位置顯示91,呵呵
5.關(guān)于縮進(jìn).這是非常重要的一個(gè)問題,一旦代碼超過100行,馬上就能感覺到縮進(jìn)的重要性了.我一般在需要縮進(jìn)的地方每次縮進(jìn)4個(gè)空格.注意一定要配對.,有進(jìn)有出.
6.還有很多小P事,其實(shí)都很重要的,有時(shí)間慢慢聊.

以下是例子.
//------------------------------------------------------------------------------
// 函數(shù): char My_FunctionA(int ParaX, char ParaY, ....)
// 功能: 本函數(shù).......
//       ....... .....
// 參數(shù): ParaX = .....
//       ParaY = .....
// 返回: .....
// 作者: .....
// 創(chuàng)建: 2009年01月01日
// 修改: 2009年01月02日(發(fā)現(xiàn)...問題,添加...,修改...,....)
//       2009年01月05日(發(fā)現(xiàn)...問題,添加...,修改...,....)
//------------------------------------------------------------------------------
char My_FunctionA(int ParaX, char ParaY, ...)
{
    unsigned int i;
    ....
    if( (.....) && (...) )
    {//v------------------------------------------當(dāng)...且....時(shí),做.... ....操作
        .....                                                     //...........
        for(i=0; i<ParaX; i++)
        {//v-----------------------------------------循環(huán)....次,做.... ....操作
             ....                                                 //...........
             ....                                                 //...........
        }//^-----------------------------------------循環(huán)....次,做.... ....操作
        .....
    }//^------------------------------------------當(dāng)...且....時(shí),做.... ....操作
}
在大多數(shù)開發(fā)環(huán)境內(nèi)嵌的編輯器中符號(hào)"v"和"^"大小差不多,呵呵,可以很好的表達(dá)我想表達(dá)的意義.
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:75077 發(fā)表于 2015-4-3 21:22 | 只看該作者
回復(fù)

使用道具 舉報(bào)

板凳
ID:78314 發(fā)表于 2015-4-30 14:56 | 只看該作者
習(xí)慣決定人生 樓主五一快樂
回復(fù)

使用道具 舉報(bào)

地板
ID:76944 發(fā)表于 2015-5-2 17:10 | 只看該作者
回復(fù)

使用道具 舉報(bào)

5#
ID:79561 發(fā)表于 2015-5-18 20:42 | 只看該作者
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表