001 - 欢迎来到C++

大家好,欢迎来到一个全新的系列,这个系列将包含你所需要知道的C ++一切内容,我们将要学习C++得到相关知识,特别是在游戏开发的过程中,当然C++不仅仅适用于做游戏。

这个系列将适用于几乎所有人,无论你是初学者还是高级学习者。这个系列都将涵盖这门语言的大部分基础知识,不过相对会很简洁。如果你是初学者,您可以跟着本课程学习,但你必须学会使用搜索引擎去了解一些基础知识。这个系列不会在基础知识上讲太多,也不会在极端细节上讲太多,这样可以避免大家陷入具体的细节而晕头转向。

01 有一个问题

首先要先解决一个问题,也是第一讲需要解决的最重要的问题,为什么要学习C++?这是不是一种过时的语言?现在学习 C ++有什么好处?

可以这样说,当你需要编写性能良好的代码时, 它仍然是最常用的语言。或者你正在为一个奇怪的架构或平台编写原生代码,并且想获取对硬件最简单进程的控制,例如游戏行业就在广泛使用C++,unity 、虚幻、frostbite 等游戏引擎,它们都是用 C ++写的。

接下来就会有另一个问题:为什么我们想要直接访问硬件,为什么所有这些游戏引擎都是用C++编写的,为什么不用另一种语言?

使用 C++的最大原因是直接控制硬件,我们接下来讨论一下C++的工作原理。

02 C++工作原理

你用C++写的代码,这些代码被送去编译器去编译为目标平台的机器码,机器码是你的设备在CPU上实际执行的指令,使用 C++,我们完全可以控制CPU执行的每一条指令。

如果你问C ++可以运行在什么平台上,答案是:几乎可以是任何平台

你只需要找到为该平台输出机器码的编译器,例如,x64编译器将输出×64机器码从而在64位的 CPU上运行,Windows 、Mac、Linux 和其他几乎所有桌面操作系统,移动操作系统IOS 、 Android,都可以用C++编写程序,还可以在所有的游戏主机上,包括 Xbox、 PS以及任天堂的Switch 等等。当您需要广泛的平台支持时C ++非常棒,因为只要有一个编译器,你就可以让C ++编译成在该平台上运行的本地代码。

当然还有其他的计算机语言有类似的特点,但 C++是自80年代初以来就广泛使用,它太受欢迎了,很多人都知道,很多人都在使用它。

其他语言,比如ava之所以不同是因为它们是在虚拟机上运行的,这意味着你的代码首先需要被编译成一种中间语言,当你在目标平台上运行你的应用程序时,虚拟机在程序运行时再转换为机器码。

想象一下假设你用英语写了一本书,但你想让一个只会说德语的德国人读你的书,你决定要做的就是在德国书店里卖英文版的书。当他买这本书时,他还会有一个翻译陪他回家。这个人回到家之后。当他想读这本书的时,翻译用英语朗读了这本书,再用德语说话,所以他就像’活着‘一样,为这个人翻译整本书,这就像在虚拟机上运行的代码。

当然,如果你把书本身翻译成德语,然后在德国的书店出售,效率会更高,所以这就是母语是本地语言的好处。

当然,以上不是一个完美的比喻,但这就是C++对比Java或C#之类的语言的区别,C++是本地语言,C++编译器为目标平台和目标架构生成机器码,然后就不会改变了,这些机器码只能在该平台上运行,它已经变成了平台上的机器语言,不需要翻译或需要其他任何东西,你只需要把机器代码指令放入CPU, CPU 就会执行这些指令。

当然,仅仅因为你的代码是本地的,并不意味着它会很快,如果你写垃圾代码的话,它也会很慢。事实上,它甚至可能比虚拟机语言比如C#或Java更慢,因为他们倾向于运行时做系统优化。正因为如此,有时候我也喜欢使用这类语言,当我只是需要少量性能的东西时,C#是一种非常好的语言,而当我们需要强性能的时候,我们就需要C++。所以我们需要学习如何正确写好代码,如何写快速的代码。

03 我们会学习什么

接下来的内容我们会讲些什么呢,一开始,我们将从基础开始,,讲到基础的时候会非常简洁,但如果你以前没编过程序,我仍然鼓励你看这个系列,但正如我所说,你可以去搜索引擎搜索你不懂的东西,学习新东西的关键就要用它、玩它。所以我相信只要你对它充满热情就绝对没问题。

如果你真的愿意学习,我们将讨论使用C++库的好处;如果你关心性能的话、编码过程中哪些事情要避免,我们会讲到C++如何运行;我们会谈到内存与指针,----由于某些原因,这部分内容在大多数例子中就讲的很差,我们会正确地教指针内存等等;自定义构造函数、智能指针、移动语义、模板等如何正确的使用,—如果你知道如何使用模板,它们非常强大,会让你轻松很多,以及如何在多个平台上编程;编写我们自己的数据结构,使它们比C ++库的更快、更安全;我们甚至会涉及底层优化,通过编译器内联、汇编,写自己的 Maps 和 SSE 指令集。

差不多了,这个系列可能会涵盖其他很多内容,如果有什么特别的需要,或者一些可能不连贯的内容,可能会单独做一讲。

04 后话

最后,希望这个系列能一直做下去,让我们一起学习,加油!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值