本文由@睡覺待開機原創(chuàng),未經(jīng)允許不得轉(zhuǎn)載。
本內(nèi)容在csdn網(wǎng)站首發(fā)
歡迎各位點贊—評論—收藏
如果存在不足之處請評論留言,共同進步!
前言:
本期我們繼續(xù)探討關(guān)于C深度解剖這本書相關(guān)內(nèi)容,繼上一篇博客,本篇博客來圍繞“數(shù)據(jù)類型”、“原反補”有關(guān)話題進行探討。
1.基本數(shù)據(jù)類型
為什么需要開辟類型?
是為了滿足不同的計算場景,讓我們合理的使用空間。之所以C語言要造這么多類型,其實就是為了適用不同的應(yīng)用場景而已,不同的應(yīng)用場景需要空間內(nèi)存大小也是不同的。用最小的成本解決各種各樣多樣化場景問題。
下面是C語言中各種類型的一個分類:
數(shù)據(jù)類型與模子:我們計算機內(nèi)存是一塊很大的空間,有些人可能想說,我不用借助類型創(chuàng)建變量,直接把數(shù)據(jù)放到內(nèi)存中存儲不就行了嗎?更省力。其實不然,單純的數(shù)據(jù)是沒有意義的,比如我告訴你我身上有100,然后你可能會想到我身上有100塊錢,那我還說我身上有100張A4紙呢,也就是說數(shù)據(jù)沒有類型是沒有意義的。 在C語言中,類型正是起到了一個單位的角色,讓沒有意義的數(shù)據(jù)變得有意義起來。
然后我想分享一些關(guān)于創(chuàng)建變量標(biāo)識符的規(guī)則,如果胡亂命名標(biāo)識符的話,就相當(dāng)不利于日后代碼的維護和協(xié)作性。
命名規(guī)則:
1.要用英文,禁用漢語、拼音
2.最短長度,最大信息
3.大駝峰命名,首字母大寫
4.盡量不要出現(xiàn)數(shù)字編號
5.程序中不得出現(xiàn)僅靠大小寫區(qū)分的標(biāo)識符
6.一個函數(shù)名禁用給變量名
7.所有宏定義、枚舉、只讀變量統(tǒng)一用大寫來定義
8.一般而言,用i、j、k作為循環(huán)變量
9.結(jié)構(gòu)體被定義時候要有明確的結(jié)構(gòu)體名稱
2.sizeof關(guān)鍵字
在解說sizeof之前,首先要明確sizeof是一個關(guān)鍵字,不是函數(shù)?。。?/strong>
為了證明sizeof不是函數(shù),下面通過幾種方法來進行證明:
方法一:編譯器來決定
編譯器在沒有括號的情況下依然可以編譯,通常函數(shù)調(diào)用需要帶有小括號。
方法二:反匯編沒有壓棧過程,函數(shù)需要壓棧
方法三:sizeof括號內(nèi)的代碼不會被真正執(zhí)行
之后,我需要來強調(diào)一下sizeof括號內(nèi)的代碼不會被執(zhí)行這個注意事項, 實際上,在C語言C90標(biāo)準(zhǔn)中,sizeof括號內(nèi)的代碼不會被執(zhí)行,但是到了C99標(biāo)準(zhǔn),標(biāo)準(zhǔn)又規(guī)定會執(zhí)行,也就是說會不會執(zhí)行完全看編譯器遵循哪一套C標(biāo)準(zhǔn),因而在sizeof里不要使用帶有副作用的代碼,比如上面方法三示例。文章來源:http://www.zghlxwxcb.cn/news/detail-811389.html
二進制與十進制的快速轉(zhuǎn)換問題:
很多同學(xué)可能感覺比較小的數(shù)字轉(zhuǎn)換二進制的麻煩,這里有個比較好的方法:
比如67=64+3=64+2+1,這樣寫出來之后我們都知道2的6次方是64,2的1次方是2,2的0次方是1,然后其他位置全部寫0就好啦。文章來源地址http://www.zghlxwxcb.cn/news/detail-811389.html
到了這里,關(guān)于【C語言深度剖析——第三節(jié)(關(guān)鍵字3)】《C語言深度解剖》+蛋哥分析+個人理解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!