Есть ли способ написать макрос препроцессора C, который расширяется до разных вещей в зависимости от того, какой аргумент он получает?
#define foo() ???
/* 1 */
foo(name)
/* 2 */
foo(_)
Желаемый результат:
/* 1 */
int name;
/* 2 */
/*ignore*/
Да, я знаю, что макросы - это зло. Я прошу об этом в основном из любопытства.