为什么 gcc 忽略 __attribute__((stdcall))?
Why does gcc ignore __attribute__((stdcall))?
当我用 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);
}
stdcall
On x86-32 targets, the stdcall
attribute causes the compiler to assume that the called function pops off the stack space used to pass arguments, unless it takes a variable number of arguments.
(强调我的。)
所以如果你不是为 32 位机器编译,stdcall
不能使用。
当我用 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);
}
stdcall
On x86-32 targets, the
stdcall
attribute causes the compiler to assume that the called function pops off the stack space used to pass arguments, unless it takes a variable number of arguments.
(强调我的。)
所以如果你不是为 32 位机器编译,stdcall
不能使用。