【发布时间】:2021-12-20 11:15:55
【问题描述】:
我正在编写一个 C 程序,在该程序中,我在更改参数并将调用转发给实际函数之前截取指针调用的函数的参数,并且这种转发是在汇编中完成的。我知道在编译到 x86 时,可以使用 attribute((stdcall)) 在每个函数的基础上标记调用约定,所以我需要知道两件事:
- 是否可以更改 gcc 在 x64 模式下使用的调用约定,还是仅在 32 位程序中可用?
- 如果可能,是否可以将这些注释或类似注释应用于函数指针,以便确保正确调用函数?
如果其他编译器支持而 gcc 不支持,我愿意使用它们。
【问题讨论】:
标签: c gcc compilation clang calling-convention