摘要: golang函数调用栈 如果在一个函数中调用另一个函数,编译器就会对应生成一条call指令,程序执行到这条指令时,就会跳转到被调用函数入口处开始执行,而每个函数的最后都有一条ret指令,负责在函数结束后跳回到调用处,继续执行。 函数栈帧 函数执行时需要有足够的内存空间,供它存放局部变量、参数等数据, 阅读全文
posted @ 2021-11-15 22:42 Dawnlight-_- 阅读(280) 评论(0) 推荐(0) 编辑
摘要: golang内存对齐 什么是内存对齐 为保证程序顺利高效的运行,编译器会把各种类型的数据安排到合适的地址,并占用合适的长度,这就是内存对齐。 每种类型的对齐值就是它的对齐边界,内存对齐要求数据存储地址以及占用的字节数都要是它的对齐边界的倍数。所以下述的int32要错开两个字节,从4开始存,却不能紧接 阅读全文
posted @ 2021-11-15 20:38 Dawnlight-_- 阅读(194) 评论(0) 推荐(0) 编辑