私が遭遇したいくつかのプリプロセッサ マクロには、先頭にアンダースコアを含む名前の引数があります。たとえば、Linux カーネルでは次のようになります。
#define DEVICE_ATTR(_name, _mode, _show, _store) \
struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _store)
これらの引数は、通常のマクロの引数と同じように動作するように見えるので、作成者が各引数名の先頭にアンダースコアを付けることにした理由がわかりません。との連結には何らかの意味がありますか_name
、それともアンダースコアは作成者が使用することを選択した単なる規則ですか?