第三章 遊戲軟體工程基礎

來源:互聯網
上載者:User

標籤:style   blog   color   io   使用   strong   檔案   資料   sp   

3.2 C/C++ 的資料/代碼及記憶體

1 IEEE-754 浮點數

  32位表示的浮點數,首位是符號位,然後8位指數和23位尾數。指數儲存時加上了位移量127,尾數隱含儲存了1。

  指數255表示無窮大。

2 多位元組值及字典序

  大於8位的值稱為多位元組量

  小端:儲存多位元組值的最低有效位元組於較低的記憶體位置。  

  大端:儲存多位元組值的最高有效位元組於較低的記憶體位置。

  

   整數位元組交換位操作:

1 inline U32 swapU32 (U32 value) 2 {3     return ( (value & 0x000000FF) << 24)
4 | ( (value & 0x0000FF00) << 8)5 | ( (value & 0x00FF0000) >> 8)6 | ( (value & 0xFF000000) >> 24);7 }

 

  浮點數位元組交換:

 1 union U32F32 { 2     U32 m_asU32; 3     F32 m_asF32; 4 }; 5  6 inline F32 swapF32 (F32 value) { 7     U32F32 u; 8     u.m_asF32 = value; 9     u.m_asU32 = swapU32 (u.m_asU32);10     return u.m_asF32;11 }

 3 聲明、定義及連結規範

  連結器主要功能是解決外部參考,只能報告下兩種錯誤:

  1)找不到extern引用的目標,報錯“unresolved external symbol”;

  2)找到兩個或以上相同名字的實體(函數或變數),報錯“multiply defined symbol”。

  可以多次聲明,但只可定義一次。若在同一檔案中多次定義,編譯器報錯,在多個檔案中重複定義由連結器報錯。因此,把定義置於標頭檔中是很危險的,若被多個檔案include,會產生錯誤。

  內嵌函式:內嵌函式會在調用它的地方展開,複製其機器碼。所以若內嵌函式在多個檔案中使用,應將其置於標頭檔中。

  連結規範:static、內部連結、外部串連。

4 C/C++ 記憶體布局

  對齊:資料對象的記憶體位址是否為對齊位元組大小的倍數。

  

 

第三章 遊戲軟體工程基礎

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.