리눅스/유닉스에서 만든 함수는 기본적으로 윈도우의 __cdecl과 동일한 방식으로 생성되는 것으로 알고 있습니다.
리눅스/유닉스에서 그러면 __stdcall과 같은 방식으로 생성하기 위해서는 어떻게 하는지요?
그리고 __cdecl과 같은 방식으로 생성하도록 하는 것을 명시적으로 표현하는 방법은 없는지요?
http://gcc.gnu.org/onlinedocs/gcc-4.0.0/gcc/Function-Attributes.html#index-g_t_0040code_007balways_005finline_007d-function-attribute-1701 __attribute__((stdcall))
그냥 아무 것도 않쓰면 C 함수는 cdecl입니다.
// cdecl void func() { }
// cdecl void __cdecl func() { }
// stdcall void __stdcall func() { }
// fastcall void __fastcall func() { }
각자 차이는 아시죠?
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
http://gcc.gnu.org/onlinedocs/gcc-4.0.0/
http://gcc.gnu.org/onlinedocs/gcc-4.0.0/gcc/Function-Attributes.html#index-g_t_0040code_007balways_005finline_007d-function-attribute-1701
__attribute__((stdcall))
[quote]그리고 __cdecl과 같은 방식으로 생성하도록 하는 것을
그냥 아무 것도 않쓰면 C 함수는 cdecl입니다.
...
// cdecl
void func() {
}
// cdecl
void __cdecl func() {
}
// stdcall
void __stdcall func() {
}
// fastcall
void __fastcall func() {
}
각자 차이는 아시죠?
댓글 달기