00:01
函数调用机制的几个练习题,我们来看一下,下面呢有五个练习题对不对,12345,我们来看一下这五个练习题,它的这个呃分析和它的一个执行过程,首先我们看第一个题,这个题大家觉得对不对?这个地方呢,大家看看到在这个函数里边呢,它得到了一个int类型的,并且return,但是非常可惜,它这个地方是按串芯,也就是按一个指针类型来接收的,所以说这个呢是错误的。错误原因是类型不匹配。不匹配对不对,为什么呢?因为你一个是int类型,一个是接收的是创新,显然不匹配。那这个可不可以啊,这个re是一个特类型,接收的是一个W类型,这个是OK的,为什么这个OK呢?因为你把一个int付给了一个double。他会干什么呀,它会自动转换。
01:01
是不是自动转换啊,没问题,我们再看这道题,这道题同学们看,这是一个int类型的接收,也是一个int类型,因此呢,这个也OK,为什么呀,Int返回给int。没问题,第三个题我们来看看,第三个题呢,这个地方他拿到一个res,但是它返回的是一个0.0,而接收是一个int,这是一个double,因此呢,这个地方。可以运行,它是可以运行的,运行,但是有警告。但是有警告。有警告为为什么有警告呢?因为他认为有精度损失,也就是说他认为你把一个double,你把一个double给到一个int,有什么呢?有精度损失。对不对,所以说他是。这么一回事,那么我们再看下一个题,下面这个题可不可以,下面题呢?返回的是一个0.0,但是它强制转换成int,这边接收也是int,因此OK。
02:02
也就是说这个时候给他,因为因为做了做了什么呀,强制转换。做了强制转换。好的,那关于函数的调用机制,我们就给大家聊到这儿,我们现在把这块的内容做一个简单的梳理,那么我们讲的是哪一块内容呢?我来看看。对,我们这块讲的是关于函数调用机制的一个内容,梳理一下。函数调用机制,我们首先用了一个比较通俗易懂的方式来帮助同学们理解,对不对?我们先做了一个通俗易懂版,用什么呢?用一个拉登去调我们的,去派遣一个特工队。炸炸白宫这么一个小案例来讲解函数的调用机制,当然了这个是一个通俗版,对不对,所以说我们紧接着呢又举例,通过举例来说明什么呀,说明这个函数调用过程。
03:02
那我把这两个拉过来。对,放这好,这是函数的调用过程。那这块呢,我们是这样来说的。诶,这个写错了。我们是通过了两个案例,拿案例这两个案例来讲解的。是不是好这两个案例呢,它们具体来说,它的对应的对应的示意图,我给大家拿过来哪两个图,第一个图是这个图。是不是这个图啊,这个图。他讲解的是关于我们调用test。这边对应的一个。一个执行的流程。对,我把这个放过来。然后呢,我们还有一个图,对下面这个图下面。不要这个号。下面这个图呢,我们讲解的是关于。穿进去两个数,传进去两个数,这个函数的调用的一个流程机制分析,把这个呢也给各位反出来,后面我们整理了几句话,对不对,就是关于函数调用的它的一个规则,我们梳理了一下函数。
04:16
函数调用调用规则。那么函数的调用规则我们说的是哪几点呢?其实就是这块。是不是这一块啊,我把它呢给大家反述过来,其实就这几块函数调用的规则,我们这做了一个说明。对,关于这几点大家要有印象,我把它标出哈,因为这块呢相对比较重要,我把它标成一个粗体。蓝色的引起大家的一个重视。好的,诶,这个地方为什么变成变成五了好。好,那这块说完了以后,是不是为了加深印象,我们又给大家做了做了几个案例,就是函数调用过程的案例。举例说明来放到这儿,那么具体来说,我们举了几个例子呢?我们举了五个案例,那这五个案例我给大家拿过来,他们分别的对应的分析是第一个题这样子的类型不匹配,一个是int,一个是char新,也就说一个是指针类型,一个是int类型,这个呢是可以的自动转换,这个呢,类型本身就是完美的匹配,这个呢有警告。
05:23
啊,他说会有精度损失,因为一个是double,一个是in特相当于把一个高精度付给一个,呃,返回给一个低精度,对不对,这个没问题,因为你有意做了强制转换。好,这是关于这个题的一个举例说明。好,各位同学,那关于函数调用机制呢,老师就给大家讲解到这里,大家一定要认真体会,尤其是这两张图,我再说一遍,这两张图和这一个函数调用的规则是我们的重点,一定要认真体会。
我来说两句