什麼是可移植性?
代碼從一種體系結構移植到另外一種體系結構上的方便性
字和字長是什麼?
- 字---能夠由機器一次完成處理的數據
- 字長----機器的位數,如Intel i7是64位芯片,是指奔騰的字長是64位,也就是8字節
字長有什麼作用?
規定了機器的字長,那麼機器所對應的處理器通用寄存器、指針和long類型數據結構都應該與字長位數一樣。既使物理地址空間比字長小,虛擬地址空間需要和字長一樣大小。
操作系統如何規定數據類型的大小?
- ANSI C標準規定,一個char長度一定是一個字節
- Linux支持的操作系統中int類型長度是32位,short類型長度是16位
- 指針和long的長度在32位和64位系統不同
什麼是數據對齊?
對齊跟數據塊在內存中位置相關,如果一個變量的內存地址正好是它長度的整數倍(標準數據類型),它就稱作自然對齊。
非標準數據類型怎樣對齊?
- 數組--------按照基本數據類型進行對齊
- 聯合體-----它包含的長度最大的數據類型能夠對齊
- 結構體-----每個元素能夠正確對齊
爲什麼要進行結構體填補操作?
爲保證結構體每一個成員都能夠自然對齊。
如何進行結構體填補?
調整結構體內成員變量的順序
什麼情況下不能進行結構體填補?
該結構體是某個標準的一部分或是現有代碼的一部分,其成員變量的次序被定死,不可改變。
如何縮進?
通過使用製表位每次縮進8個字符長度
如何使用空格?
空格放在關鍵字周圍,函數名和圓括號之間無空格。
如何使用花括號{}?
左括號緊跟在語句最後,與語句在同一行。右括號新起一行,作爲該行的第一個字符。
命名規範有哪些內容?
選擇包含描述性內容的名稱,並使用小寫字母,必要時加上下劃線區分單詞。