亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問typedef A B;這句代碼是把什么定義成了什么?

請問typedef A B;這句代碼是把什么定義成了什么?

慕妹3146593 2022-05-13 13:09:20
typedef DWORD (CALLBACK *LPFNREGISTER)(DWORD,DWORD);CALLBACK是什么意思? 
查看完整描述

1 回答

?
catspeake

TA貢獻1111條經驗 獲得超0個贊

typedef A B
的意思是把B當作和A一樣的類型.
你的語句定義了一個函數的類型,類型名字叫LPFNREGISTER,返回值為DWORD,該類型的函數有兩個參數都是DWORD類型。

CALLBACK是個在windows.h里面定義的常量,他是這么定義的
#define CALLBACK __stdcall
也就是在CALLBACK的位置,其實是個__stdcall,這是告訴編譯器這個函數的調用方式。C語言中有不同的調用方式,比如__stdcall, __cdecl,這個參數是可以省略的,省略之后,編譯器則默認為__cdecl的調用方式。但是,微軟所有的API都是__stdcall,所以就必須要加上這個參數。你自己也可以定義函數的時候加上這個modifier

int __stdcall Foo();

另外,__stdcall在windows.h中有很多馬甲,比較常見的兩個是
#define CALLBACK __stdcall
#define WINAPI __stdcall


查看完整回答
反對 回復 2022-05-16
  • 1 回答
  • 0 關注
  • 239 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號