2014-05-09 2 views
1

누구나 왜이 기능이 작동하지 않는지 알고 있습니까?GCC는 호출 규칙 속성을 무시합니다.

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))을 사용할 수 있습니다

답변

3

다음은 작동합니다. g++ -std=c++11 -m32으로 컴파일 경고 메시지가 표시되지 않습니다.