Hello,大家好,今天又和大家见面了!前两天,我看到了几款游戏引擎渲染效果的对比的视频,https://www.bilibili.com/video/av5113296?from=search&seid=8788485164924869274,就是哔哩哔哩上这个视频,我把链接放在这里了!当我看到这几款游戏引擎的渲染效果之后,开始觉得,计算机图形学和算法的重要性。游戏引擎本来就是对性能有很高要求的软件系统,所以,一般是使用C/C++语言加上一部分的汇编语言开发而成的,支持GPU的并发编程,可以说是算法的集合体。而在这里,程序的优化就非常的重要。我们都知道,有一部分游戏,虽然本身很大,但是,当你在玩游戏的时候,却并不会感觉得到太过于明显的卡顿,但是另外一部分游戏,却是特别的卡顿。这里涉及到程序优化的一部分知识。
C/C++程序设计语言是没有GC的,然而像Java,Python,一起其他的一些高级语言,往往都带有GC,这导致在游戏过程中会出现抖动,游戏不顺畅。所以,游戏开发这个领域,还是C/C++的主战场,虽然现在有一种新的编程语言Rust也是不带有GC的,但是这个语言诞生的比较晚,所以,目前的主流游戏还是使用C++等开发。
说了这么多,让我们进入到C语言变量的学习吧!
变量是个什么东西呢?变量就是一块内存空间的别名。不过C语言中的内存地址的访问,不仅仅可以通过变量名字访问,还可以通过指针来访问。我们本次就介绍一下基本数据类型以及指针类型。大家坐好,开车了~
基本数据类型分为数值类型和字符类型,而数值类型则包括整型,实型;字符数据类型则是字符型。整形包括short,int,long,long long,而实型则包括float和double两种,字符型的包括char类型。这些数据类型是有大小限制的,首先呢,必须声明的是,千万千万不能有整型数据的溢出,这样会导致安全问题。还有就是浮点数的大小比较问题,绝对不是直接使用等号就可以解决的。
与基本数据类型对应的指针类型有:int*, char*, long*, float*, double*等等,这些数据类型代表的是指针,其实指针本质上是一种存放地址的数据类型,可以通过指针获得指针指向的内存空间的数据。
C语言中没有字符串,在C语言中是通过字符数组来模拟的字符串。C语言中的字符串就是以'\0'结尾的字符数组,而且C语言不支持字符串的直接相加减,必须通过特定的函数来操作,具体的函数在<string.h>头文件中可以找到,主要有strstr(查找子串),strcat(连接两个字符串), strcpy(进行字符串的拷贝)等等函数。
还有C语言中并没有bool类型,不过在C99中引入了bool类型,需要在<stdbool.h>头文件中找到他们的定义。
今天所要讲的知识点就这么多,希望大家能够消化好。我们下次再见~