我遇到的一些预处理器宏的参数名称包含前导下划线;例如,在 Linux 内核中:
#define DEVICE_ATTR(_name, _mode, _show, _store) \
struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _store)
这些参数的行为似乎与常规宏参数一样,所以我不明白为什么作者决定为每个参数名称加上前导下划线。与 的连接是否有某种意义_name
,或者下划线只是作者选择使用的约定?