1)如果你有一個
#define __ something
的地方,那麼它意味着什麼。
否則,it's只是名字_KERNEL__
2)這將只是__namei(pathname, LOOKUP_FOLLOW)
替換每namei(pathname)
的一部分。
後者是對代碼和參數中的某個函數的函數調用。
3)相同。替換每FIBMP
與__IO(0x00, 1)
,
這是一個函數或#define
別的地方
4)是否有ARG後三點?然後它是一個可變的宏。 IE瀏覽器。
取代pr_info(a)
與printfk(KERN_INFO a)
與printfk(KERN_INFO a, b)
取代pr_info(a, b)
與printfk(KERN_INFO a, b, c)
等取代pr_info(a, b, c)
。如果沒有##
,這將是
取代pr_info(a)
與printfk(KERN_INFO a,)
與printfk(KERN_INFO a, b,)
取代pr_info(a, b)
與printfk(KERN_INFO a, b, c,)
更換pr_info(a, b, c)
後面的逗號的區別是,它會導致編譯器錯誤。
只有在使用##
時後面跟有參數時,逗號纔會出現。