当我使用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
。