簡體   English   中英

C中宏的NULL定義的含義

[英]Meaning of NULL definition for a macro in C

我正在編寫一個簡單的代碼,用於通過 procfs 中的條目訪問我的驅動程序數據。 在瀏覽頭文件proc_fs.h ,我遇到了一個宏,如:

#define proc_create(name, mode, parent, proc_fops) ({NULL;})

這個宏如何運作,因為它的擴展是NULL

({...})是一個名為statement expression的 gcc 擴展。 這是一個可以使用表達式的語句。 語句表達式中使用的最后一個語句是表達式的值。

以下返回真:

return ({NULL;}) == NULL;

這個宏如何運作,

帶有任何 4 個參數的宏proc_create擴展為({NULL;})

因為它的擴展是 NULL ?

擴展不是NULL ,而是字符({NULL;}) 這個宏的擴展是一個計算結果等於NULL的表達式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM