代码之家  ›  专栏  ›  技术社区  ›  René Nyffenegger

为什么gcc忽略了属性(stdcall)?

  •  3
  • René Nyffenegger  · 技术社区  · 6 年前

    当我编译以下C源代码时 gcc warning: ‘stdcall’ attribute ignored [-Wattributes] .

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

    __attribute__((stdcall)) int S(int a) {
        return a * (a+1);
    }
    
    int main() {
        return S(6);
    }
    
    1 回复  |  直到 6 年前
        1
  •  3
  •   Community c0D3l0g1c    4 年前

    这个 gcc documentation

    stdcall

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

    (我的)

    如果不是为32位机器编译, 调用约定