例如:定義調用約定有什麼意義?
int WINAPI WinMain (HINSTANCE instance, HINSTANCE prev_instance, PSTR cmd_line, int cmd_show)
WINAPI是AA定義是這樣的:
#define WINAPI __stdcall
爲什麼你就不能這樣做:
int __stdcall WinMain (HINSTANCE instance, HINSTANCE prev_instance, PSTR cmd_line, int cmd_show)
其實我覺得我的問題是,我有點令人困惑的定義與typedef的。誰可以給我解釋一下這個?定義是做什麼的,爲什麼不能在它的地方寫入__stdcall?
呃,其實你錯了。因爲現在不可能改變這個習俗。試想一下,如果microsoft突然將WINAPI更改爲__cdecl,那麼每個使用Win Api頭版的先前版本編譯的程序都將無法正常工作 – 2012-03-01 17:00:11
不過,對於不同的平臺來說,這是有意義的。只有x86具有'__stdcall',所以期望WINAPI在ARM上成爲一個空宏。 – 2012-03-01 17:00:55
@kids_fox顯然,二進制文件不會有效,但代碼會。 – 2012-03-01 17:02:14