[問題] 看似複雜的函式定義

看板C_and_CPP (C/C++)作者 (白熊 )時間13年前 (2012/11/05 17:53), 編輯推噓0(004)
留言4則, 1人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 小弟我看到一組source code不知該如何解讀 #define ETYPE_EC_HEADER_LEN sizeof(ETYPE_EC_HEADER) #define ETYPE_EC_CMD_DATA16(p) (*((PUSHORT)&(((PBYTE)p)[ETYPE_EC_HEADER_LEN]))) #define ETYPE_EC_CMD_DATA8(p) (*((PBYTE)&(((PBYTE)p)[ETYPE_EC_HEADER_LEN]))) 想請問一下 ETYPE_EC_CMD_DATA16(p), ETYPE_EC_CMD_DATA8(p) 這兩個式子的含意? 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.251.200.114

11/05 19:01, , 1F
取得 header 後面接著的 data
11/05 19:01, 1F

11/05 19:02, , 2F
16 表示 data 是 USHORT,8 表示 data 是 BYTE
11/05 19:02, 2F

11/05 19:06, , 3F
先取得 p 裡面第 ETYPE_EC_HEADER_LEN 個 byte 的位址
11/05 19:06, 3F

11/05 19:07, , 4F
再 cast 成 USHORT 或 BYTE 指標,再取值。
11/05 19:07, 4F
文章代碼(AID): #1GbuodFY (C_and_CPP)
文章代碼(AID): #1GbuodFY (C_and_CPP)