19---可移植性與編程規範

什麼是可移植性?

代碼從一種體系結構移植到另外一種體系結構上的方便性

字和字長是什麼?

  • 字---能夠由機器一次完成處理的數據
  • 字長----機器的位數,如Intel i7是64位芯片,是指奔騰的字長是64位,也就是8字節

字長有什麼作用?

規定了機器的字長,那麼機器所對應的處理器通用寄存器、指針和long類型數據結構都應該與字長位數一樣。既使物理地址空間比字長小,虛擬地址空間需要和字長一樣大小。

操作系統如何規定數據類型的大小?

  • ANSI C標準規定,一個char長度一定是一個字節
  • Linux支持的操作系統中int類型長度是32位,short類型長度是16位
  • 指針和long的長度在32位和64位系統不同

什麼是數據對齊?

對齊跟數據塊在內存中位置相關,如果一個變量的內存地址正好是它長度的整數倍(標準數據類型),它就稱作自然對齊。

非標準數據類型怎樣對齊?

  • 數組--------按照基本數據類型進行對齊
  • 聯合體-----它包含的長度最大的數據類型能夠對齊
  • 結構體-----每個元素能夠正確對齊

爲什麼要進行結構體填補操作?

爲保證結構體每一個成員都能夠自然對齊。

如何進行結構體填補?

調整結構體內成員變量的順序

什麼情況下不能進行結構體填補?

該結構體是某個標準的一部分或是現有代碼的一部分,其成員變量的次序被定死,不可改變。

如何縮進?

通過使用製表位每次縮進8個字符長度

如何使用空格?

空格放在關鍵字周圍,函數名和圓括號之間無空格。

如何使用花括號{}?

左括號緊跟在語句最後,與語句在同一行。右括號新起一行,作爲該行的第一個字符。

命名規範有哪些內容?

選擇包含描述性內容的名稱,並使用小寫字母,必要時加上下劃線區分單詞。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章