#define node
Это заменит пустой токен везде, где есть node
после этой точки. Поэтому после предварительной обработки код становится следующим:
struct
{
int datum;
struct * next;
} ;
Поэтому необходимо выбрать имя для define
, которое не используется в качестве идентификатора в файле. Обычно определение отражает имя файла:
#ifndef NODE_H
#define NODE_H
struct node
{
int datum;
struct node * next;
};
#endif