Пройдя через некоторый исходный код, который сильно смешивает C и С++, я натолкнулся на следующее (слегка измененное для защиты работы компании, значение остается тем же):
/*
* Typedefs of void are synonymous with the void keyword in C,
* but not in C++. In order to support the use of MY_VOID
* in place of the void keyword to specify that a function takes no
* arguments, it must be a macro rather than a typedef.
*/
#define MY_VOID void
В чем разница между typedef void MY_VOID
и #define MY_VOID void
в этом конкретном контексте?
Я не считаю, что это дубликат этого вопроса, потому что он конкретно спрашивает о последствиях в отношении сигнатур функций, а не о гораздо более общем "разница".