C/C++知识点之《游戏引擎架构》读书笔记-游戏引擎中的C++
小标 2019-03-01 来源 : 阅读 1012 评论 0

摘要:本文主要向大家介绍了 C/C++知识点之《游戏引擎架构》读书笔记-游戏引擎中的C++,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍了 C/C++知识点之《游戏引擎架构》读书笔记-游戏引擎中的C++,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

C/C++知识点之《游戏引擎架构》读书笔记-游戏引擎中的C++

《游戏引擎架构》在两年前就买了,而且自己也大体的看过一遍,因为自己想学习引擎的底层知识,所以重新又找出了这本书再读一遍,并把根据自己的理解写一些读书笔记在这里与大家交流。


       闲话少续,开始本篇的内容,这本书的第一部分是基础篇,第一章概述了一些引擎概念,第二章讲解了一些工具的用法(Visual Studio等),第三章介绍了C++,和一般的C++书不一样的是,本书讲解的C++应该更多的是引擎中常用的一些概念,另外还包括一些软件工程基础思想,笔者觉得比较重要的有以下几点


      首先,“让错误的程序显而易见”,这部分是在介绍编码标准的时候介绍的,其中推荐了一篇文章--“让错误的程序显而易见”


       然后是对象的内存布局,这部分会对程序的性能优化很有帮助,在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开发的小端设备可能会涉及到数据转换问题。


       最后介绍了实现错误检测及处理,将断言分为两个宏中,方便在发布版时关掉不必要的断言从而避免不必要的效率损失。

   

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程