欢迎光临散文网 会员登陆 & 注册

CPU眼里的:返回值 | 语言硬伤

2022-12-16 22:08 作者:太吾煎饼  | 我要投稿

超全归纳CPU眼里的:返回值 | 语言硬伤满满干货来啦!



📇目录

1️⃣介绍

2️⃣解读

3️⃣验证

4️⃣总结



一、介绍


00:00


1️⃣世界上还有比函数返回值、更简单、更顾名思义的语法吗?

2️⃣能写一个返回数组的函数吗?



二、解读


00:28


1️⃣打开compiler explorer,写一个返回立即数的函数

2️⃣寄存器rax,就是用来传递函数的:返回值

3️⃣再写一个返回变量的函数、返回指针的函数,CPU指令完全相同


4️⃣都是在用寄存器rax向主调函数传递:返回值




三、验证


04:12


1️⃣写一个返回临时数组的函数,作函数的调用,打印数组的第一个元素,看运行结果

2️⃣随着函数的逐层返回,函数的栈帧会被就地放弃,但不会清理内存



四、总结


05:34


1️⃣对于返回原生的数据类型和指针、应用类型时,往往会使用寄存器rax向主调函数传递返回值

2️⃣对于返回复杂数据类型,则需要避免返回,栈变量或栈对象

3️⃣返回值问题的本质:内存问题


CPU眼里的:返回值 | 语言硬伤的评论 (共 条)

分享到微博请遵守国家法律