#include <stdio.h>
#define PRINT(name) print ## name()
void printHE()
{
printf("Hello");
}
void printWO()
{
printf("World\n");
}
enum {
HE,
WO,
};
int main()
{
PRINT(HE);
PRINT(WO);
}
Это прекрасно работает, но почему?Что это за трюк?
Что делает ##
в #define
означает?
И почему HE
не конвертировал в 0
?
Где определяется' PRINT'? – trojanfoe
Вы не показываете нам '# define', поэтому мы можем только догадываться, что вы делаете. В препроцессоре '##' означает конкатенацию. –
** Что ## в #define означает? ** ..Where is ** ## ** ??? –