游戏逆向学习——C++共同学习1
今天更新两期。
这门课属实是最重要的了,所有反编译或是**均要使用到编译器来指定工作,如果一味的嵌入在CE或是其他工具中是不能自主的。我个人对C++的理解只停留在能知道这是函数,这是接口,或者这是一个迭代等。所以远超过我的同学,我会尽量追上各位的步伐,落后一点的也不要着急,我会尽量用最简单的方式让各位能懂得能上手。好了,废话不多说,下面开始正式学习第一部分。
这里我们直接从函数部分开始,前面的各种数据类型,和复合结构类型我就不再多说了。
第一个知识点:
内联函数是一种提高程序运行速度所做的一项改进。除了编写上的不一样主要在于运行程序时,操作系统将这些指令载入计算机内存中,在牺牲内存的情况下提高代码的执行速度。在使用的时候要格外的注意不能滥用。
在函数声明前加上关键字inline组成内联函数:inline double square(double x){return x*x}/*例子
第二个知识点:
引用变量的创建,学过c的都知道‘&’这个符号的意思。在C++中使用‘&’赋予了另一个含义,称为引用。比如:
int bigapple;
int &apple=bigapple;
这里要说的就是创建的时候一定要预先声明。这里我们发现在指针指向引用变量时,和我们平常指针指向输出不一样,一个输出真实值,一个却输出了地址,经过又一轮验证看图2。
这里我们看的出其实引用的实际含义就是与原始值使用相同地址,引用变量自身为什么不能赋值的原因就在这里。
类似于寄生的关系。
第三个知识点:
将引用用作函数参数,刚刚学习了引用的知识点,各位想想是否可以将它用作我们熟悉的函数参数上,我们初学的时候对形参和实参实在头疼,但是,这里可以用这个方法来提高效率同时提升你对形参和实参的理解程度。
形参是什么,实参是什么,最简单的理解就是,函数被调用的时候,要用到参数的地方,就是形参,但是当计算机编译后,将值得真实数值插入的时候,这个插入的值就是实参。那么刚刚说到寄生关系,也就是引用关系貌似很类似于这种关系。
我们来测试一下。
这里如我们所想一样,在函数中形参被我们设置成了一个引用变量,可以达成普通函数的效果,那么这里说一下主要区别。在编译器中函数在调用的时候,我们用上图的number来说,这里定义一个double变量并附了初值,同时,代入到普通函数,那么就要对形参创建并传递实参的值,这样两次定义和赋值,就是普通函数的调用过程。但是引用的调用只需要将&a公用一个地址上的实际值,少去一次赋值定义的过程,同时inline函数注入内存调用,效率上非常的高。
好了,每天分享就到这里拉,吃饭了 !