繁体   English   中英

GCC忽略调用约定属性

[英]GCC ignores calling convention attribute

有谁知道为什么这不起作用?

void test() [[stdcall]] {
        std::cout << "Hello World" << std::endl;
}

当我尝试用C ++ 11方言编译时,它说:

“警告:'stdcall'属性指令被忽略[-Wattributes]”

这是为什么? 我有一个真正需要stdcall调用约定的函数。 GCC中的默认调用约定是cdecl。 有什么建议么?

以下应该有效:

#include <iostream>
[[gnu::stdcall]]
void test()
{
  std::cout << "Hello World" << std::endl;
}

或者您可以使用旧语法__attribute__((stdcall)) g++ -std=c++11 -m32编译g++ -std=c++11 -m32我没有得到任何警告。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM