![]() |
1
2
这在很大程度上取决于你使用的微处理器。如果是x86,char将被加宽为int,然后这两个参数都在堆栈上传递。您可以通过编译执行对汇编代码的调用的C代码来了解自己,并检查汇编代码。 例如,给定
gcc在x86linux上生成代码
|
![]() |
2
1
很大程度上取决于调用约定,而调用约定又取决于编译器。 但99.9%的时间是两件事之一。它们要么被传递到寄存器中,要么被推送到堆栈中并在函数内部弹出。 |
![]() |
3
0
调用约定指定如何传递参数,哪些寄存器是调用方保存的,哪些寄存器是被调用方保存的,返回地址如何存储,以及正确实现可以从C调用的函数所需的一切(以及正确调用C函数所需的一切) |
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |