当我使用gcc
版本8.1.1编译以下C源代码时,我得到了warning: ‘stdcall’ attribute ignored [-Wattributes]
。
为什么gcc选择忽略此属性,我该怎么做才能使其接受它?
__attribute__((stdcall)) int S(int a) {
return a * (a+1);
}
int main() {
return S(6);
}
答案 0 :(得分:1)
stdcall
在x86-32目标上,
stdcall
属性使编译器假定被调用函数弹出用于传递参数的堆栈空间,除非它采用可变数量的参数
(强调我的。)
因此,如果您不针对32位计算机进行编译,则无法使用stdcall
。