C语言 为什么 gcc 忽略 __attribute__((stdcall))?



当我使用8.1.1版本编译以下C源代码时gcc我得到了一个warning: ‘stdcall’ attribute ignored [-Wattributes]

为什么 gcc 选择忽略此属性,我该怎么做才能让它接受它?

__attribute__((stdcall)) int S(int a) {
return a * (a+1);
}
int main() {
return S(6);
}

gcc 文档说:

stdcall

在 x86-32 目标上stdcall属性使编译器假定调用的函数会弹出用于传递参数的堆栈空间,除非它需要可变数量的参数。

(强调我的。

因此,如果不针对 32 位计算机进行编译,则无法使用stdcall

相关内容

  • 没有找到相关文章