[問題] 請問一個bootloader底層macro的問題...

看板C_and_CPP作者 ((((((((((()))))))))))時間14年前 (2011/10/20 13:31), 編輯推噓2(204)
留言6則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) linux 問題(Question): 最近在 trace 一個 bootloader(x-loader)的程式碼 發現 trace 到最底層後,經常會出現很多 macro 像是連結中的 line 62 63 #define __FD_SET(fd, fdsetp) \ (((fd_set *)fdsetp)->fds_bits[fd >> 5] |= (1<<(fd & 31))) 其中的 fd_set 我想要繼續查找它是在哪裡宣告的,卻再也找不到了 請問是否應該直接把他視為取代用的字串呢? 還有為什麼 fd 明明是參數,卻不用 () 包住它? 謝謝! 程式碼(Code):(請善用置底文網頁, 記得排版) http://pastie.org/2727920 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.130.78.66 SweepingMonk:轉錄至看板 LinuxDev 10/20 13:32

10/20 13:41, , 1F
其實沒人要求參數得用 () 括起來 只是括起來比較不會錯
10/20 13:41, 1F

10/20 13:41, , 2F
這裡看起來 fd 和 fdsetp 大概都只會是一個變數所以索性不括
10/20 13:41, 2F

10/20 13:55, , 3F
it's a sturcture, different between linux and win.
10/20 13:55, 3F

10/20 13:56, , 4F
http://0rz.tw/5M7r1 參考 #2 , #define 用法自己補..
10/20 13:56, 4F

10/20 14:02, , 5F
我的 fd_set 定義與出處:http://codepad.org/eegEQrhy
10/20 14:02, 5F

10/21 10:16, , 6F
感謝樓上幾位大大的說明!
10/21 10:16, 6F
文章代碼(AID): #1Edx987a (C_and_CPP)