gpt4 book ai didi

linux - Linux 中这是什么调用约定?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:01:18 24 4
gpt4 key购买 nike

我在用这个程序集调用的程序中有一个函数:

push xxx
push xxx
call xxx
add esp, xxx

据我所知,此函数具有 cdecl 调用约定。在 GCC 中,我使用 __attribute__((cdecl)) 使另一个函数的行为与上述函数相同。

但是当我调试它时,显示了这个程序集:

push xxx
push xxx
call xxx

没有add esp, xxx!

我应该使用什么调用约定来生成相同的程序集?

最佳答案

我怀疑这与调用约定有任何关系,更可能与编译器优化有关,如“defer-pop”(编译器将等待弹出堆栈,直到稍后)

关于linux - Linux 中这是什么调用约定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8765344/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com