Some preprocessor macros I come across have arguments with names containing a leading underscore; for example, in the Linux kernel:
#define DEVICE_ATTR(_name, _mode, _show, _store) \
struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _store)
These arguments appear to behave just like regular macro arguments, so I can't figure out why the author decided to have a leading underscore for each argument name. Is there some significance to the concatenation with _name
, or are the underscores just a convention the author chose to use?