12. 常量

數(shù)值型常量不應(yīng)該被硬編碼到源文件中南用。應(yīng)該使用C預(yù)處理器的#define特性為常量賦予一個(gè)有意義的名字跳芳。符號(hào)化的常量可以讓代碼具有更好的可讀性芍锦。在一處地方統(tǒng)一定義這些值也便于進(jìn)行大型程序的管理,這樣常量值可以在一個(gè)地方進(jìn)行統(tǒng)一修改飞盆,只需修改define的值即可娄琉。枚舉數(shù)據(jù)類型更適合聲明一組具有離散值的變量,并且編譯器還可以對(duì)其進(jìn)行額外的類型檢查吓歇。至少孽水,任何硬編碼的值常量必須具有一段注釋,以說(shuō)明該值的來(lái)歷城看。

常量的定義應(yīng)該與其使用是一致的女气;例如使用540.0作為一個(gè)浮點(diǎn)數(shù),而不是使用540外加一個(gè)隱式的float類型轉(zhuǎn)換测柠。有些時(shí)候常量0和1被直接使用而沒(méi)有用define進(jìn)行定義炼鞠。例如,一個(gè)for循環(huán)語(yǔ)句中用于標(biāo)識(shí)數(shù)組下標(biāo)的常量轰胁,

for (i = 0; i < ARYBOUND; i++)

上面代碼是合理的谒主,但下面代碼

door_t *front_door = opens(door[i], 7);
if (front_door == 0)
    error("can't open %s\\\\n", door[i]);

是不合理的。在最后的那個(gè)例子中赃阀,front_door是一個(gè)指針霎肯。當(dāng)一個(gè)值是指針的時(shí)候,它應(yīng)該與NULL比較而不是與0比較榛斯。NULL被定義在標(biāo)準(zhǔn)I/O庫(kù)頭文件stdio.h中观游,在一些新系統(tǒng)中它在stdlib.h中定義。即使像1或0這樣的簡(jiǎn)單值肖抱,我們最好也用define定義成TRUE和FALSE定義后再使用(有些時(shí)候备典,使用YES和NO可讀性更好)。

簡(jiǎn)單字符常量應(yīng)該被定義成字面值意述,不應(yīng)該使用數(shù)字提佣。不鼓勵(lì)使用非可見(jiàn)文本字符吮蛹,因?yàn)樗鼈兪遣豢梢浦驳摹H绻强梢?jiàn)文本字符十分必要拌屏,尤其是當(dāng)它們?cè)谧址惺褂脮r(shí)潮针,它們應(yīng)該定義成三個(gè)八進(jìn)制數(shù)字的轉(zhuǎn)義字符(例如: '\007‘)而非一個(gè)字符。即使這樣倚喂,這種用法也應(yīng)該考慮其機(jī)器相關(guān)性每篷,并按這里的方法處理。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末端圈,一起剝皮案震驚了整個(gè)濱河市焦读,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌舱权,老刑警劉巖矗晃,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異宴倍,居然都是意外死亡张症,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門鸵贬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)俗他,“玉大人,你說(shuō)我怎么就攤上這事阔逼≌仔疲” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵嗜浮,是天一觀的道長(zhǎng)涯保。 經(jīng)常有香客問(wèn)我,道長(zhǎng)周伦,這世上最難降的妖魔是什么夕春? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮专挪,結(jié)果婚禮上及志,老公的妹妹穿的比我還像新娘。我一直安慰自己寨腔,他們只是感情好速侈,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著迫卢,像睡著了一般倚搬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上乾蛤,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天每界,我揣著相機(jī)與錄音捅僵,去河邊找鬼。 笑死眨层,一個(gè)胖子當(dāng)著我的面吹牛庙楚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播趴樱,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼馒闷,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了叁征?” 一聲冷哼從身側(cè)響起纳账,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎捺疼,沒(méi)想到半個(gè)月后塞祈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡帅涂,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了尤蛮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片媳友。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖产捞,靈堂內(nèi)的尸體忽然破棺而出醇锚,到底是詐尸還是另有隱情,我是刑警寧澤坯临,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布焊唬,位于F島的核電站,受9級(jí)特大地震影響看靠,放射性物質(zhì)發(fā)生泄漏赶促。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一挟炬、第九天 我趴在偏房一處隱蔽的房頂上張望鸥滨。 院中可真熱鬧,春花似錦谤祖、人聲如沸婿滓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)凸主。三九已至,卻和暖如春额湘,著一層夾襖步出監(jiān)牢的瞬間卿吐,已是汗流浹背旁舰。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留但两,地道東北人鬓梅。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像谨湘,于是被迫代替她去往敵國(guó)和親绽快。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理紧阔,服務(wù)發(fā)現(xiàn)坊罢,斷路器,智...
    卡卡羅2017閱讀 134,600評(píng)論 18 139
  • 前不久,《我的前半生》通過(guò)“出軌”再一次引爆了觀眾的話題點(diǎn)乖仇。有人憤怒憾儒,有人表示冷漠,還有人贊美這種不受道德約束的愛(ài)...
    大觀家庭閱讀 591評(píng)論 0 1
  • 二妞出世后乃沙,我們從醫(yī)院回到了家里起趾。老大只是象征性地看了幾次,短暫的停留時(shí)間警儒,估計(jì)都沒(méi)看清妹妹的模樣训裆。 自次以后,大...
    我是張老師閱讀 709評(píng)論 1 3
  • “親愛(ài)的蜀铲,外面沒(méi)有別人边琉,只有你自己〖侨埃” 當(dāng)我們?nèi)找勾┧笥跓艏t酒綠的鬧市之中,當(dāng)我們追著時(shí)間拼命奔跑之時(shí)厌丑,可曾想過(guò)蹄衷,...
    sunshine琳兒閱讀 1,553評(píng)論 0 6
  • 01 林勛奇盯著手機(jī)屏幕整個(gè)人僵硬成了風(fēng)景睦番,那個(gè)熟悉的頭像托嚣。 可是那幾個(gè)字卻像是被無(wú)限放大,大到他的大腦無(wú)法消化兢哭。...
    戀粉破曉閱讀 829評(píng)論 4 6