В C, в чем смысл подчеркивания в качестве параметра макроса?Использование подчеркивания в качестве аргумента макрофункции
#define FUNC(_) VALUE
Это фиктивный аргумент? любой пример для прецедента, в котором он будет соответствовать?
В C, в чем смысл подчеркивания в качестве параметра макроса?Использование подчеркивания в качестве аргумента макрофункции
#define FUNC(_) VALUE
Это фиктивный аргумент? любой пример для прецедента, в котором он будет соответствовать?
В этом случае код может быть прочитана как:
FUNC
принимает один аргумент, но это не важно, что это такое. Независимо от того, что передается, результатVALUE
.
Один _
является допустимым идентификатором в C и поэтому подходит для использования в качестве имени макроопределения.
ну, тогда если определение указывает на значение, нет необходимости в такой вещи; для других случаев я это получаю. Благодарю. – winuall
Я взял ваш пример буквально, так вот как это интерпретируется. Поскольку '_' является допустимым идентификатором, его можно использовать внутри тела макроса, если программист решит это сделать. Это плохой выбор, однако, потому что он ущемляет читаемость. – jxh
Есть ли что-нибудь особенное в подчеркивании, или оно просто имеет согласованное значение ненужного параметра? – Carcigenicate
_
не имеет особого значения, я полагаю, они использовали его, потому что похоже, если аргумента нет.
_
является действительным идентификатором, и поэтому он берется так, что макросу требуется один параметр, но он сохраняет определение макроса, как будто не было параметра.
#define FUNC(ignoredParameter) VALUE
будет exaccty то же самое.
Да, это фиктивный аргумент, если он не используется, но нет ничего особенного в названии. Его можно было бы назвать 'x' или' foo' или что-то еще. –