91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

《游戲引擎架構》讀書筆記-游戲引擎中的C++

發布時間:2020-04-25 02:14:32 來源:網絡 閱讀:625 作者:GuangYao_Li 欄目:編程語言

《游戲引擎架構》在兩年前就買了,而且自己也大體的看過一遍,因為自己想學習引擎的底層知識,所以重新又找出了這本書再讀一遍,并把根據自己的理解寫一些讀書筆記在這里與大家交流。

?????? 閑話少續,開始本篇的內容,這本書的第一部分是基礎篇,第一章概述了一些引擎概念,第二章講解了一些工具的用法(Visual Studio等),第三章介紹了C++,和一般的C++書不一樣的是,本書講解的C++應該更多的是引擎中常用的一些概念,另外還包括一些軟件工程基礎思想,筆者覺得比較重要的有以下幾點

????? 首先,“讓錯誤的程序顯而易見”,這部分是在介紹編碼標準的時候介紹的,其中推薦了一篇文章--“讓錯誤的程序顯而易見”(http://chinesetrad.joelonsoftware.com/Articles/Wrong.html),這篇文章介紹了通過命名方式的前綴反應變量的性質,從而讓錯誤的程序顯而易見,介紹了匈牙利命名法的使用方式。

?????? 然后是對象的內存布局,這部分會對程序的性能優化很有幫助,在class和struct中,編譯器不會把數據程序員緊湊的包裹在一起,因為每種數據都有其天然的對齊方式,供CPU高效的從內存讀/寫。對齊方式即內存地址為對齊字節大小的倍數,另外編譯器可能會為了數組的對齊,會在末端加入填充,以下是32位系統下各個類型的大小(單位:字節):

int:4字節;float:4字節;double:8字節;bool:1字節;char:1字節;short:2字節;long:4字節或者8字節

?????? 需要說明的是,當class中有虛函數的時候,或者是繼承的類中有虛函數的時候,通常會在類的布局最前端加入一個虛表指針,它指向名為虛函數表的一個數據結構,因為指針是int類型的。

?????? 了解內存布局的意義是,當我們寫類和結構體的時候,最優化的處理方式是自己按照內存布局規則把數據排列好,從而可以降低類或者結構體所占的大小。

?????? 另外需要說明的是類型大小的問題,因為標準C++基本數據類型設置為可以移植的,因而不做明確的規定,在游戲引擎的開發中,有時候需要知道某些變量的確切尺寸,多數游戲引擎會自定義基本的數據類型;另外還有大端和小端的轉換問題,Wii、Xbox360和PS這種使用PowerPC開發的小端設備可能會涉及到數據轉換問題。

?????? 最后介紹了實現錯誤檢測及處理,將斷言分為兩個宏中,方便在發布版時關掉不必要的斷言從而避免不必要的效率損失。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙井市| 阿坝| 定襄县| 天祝| 修武县| 南京市| 剑阁县| 华蓥市| 平凉市| 山丹县| 武冈市| 安达市| 康保县| 永年县| 汝城县| 郎溪县| 大渡口区| 肇东市| 平南县| 石泉县| 玉环县| 江油市| 固安县| 铁岭市| 武义县| 赤峰市| 天台县| 凌海市| 乌兰察布市| 西丰县| 静海县| 游戏| 米泉市| 鲜城| 茂名市| 乐业县| 乌拉特中旗| 合水县| 柘城县| 新昌县| 景谷|