Quels sont les caractères valides pour les noms de macro?

Sont de style C les noms de macro soumis aux mêmes règles de nommage que les identifiants? Après un compilateur de mise à niveau, il est maintenant émettant cet avertissement pour une application legacy:

warning #3649-D: white space is required between the macro name "CHAR_" and its replacement text
  #define         CHAR_&        38

Cette ligne de code est la définition d'une valeur ASCII constante pour une esperluette.

#define   DOL_SN        36
#define   PERCENT       37
#define   CHAR_&        38
#define   RT_SING       39
#define   LF_PAR        40

Je suppose que cette définition (et non pas référencé par un code, autant que je puis dire) est défectueux et doit être remplacé par quelque chose comme "CHAR_AMPERSAND"?

InformationsquelleAutor An̲̳̳drew | 2008-12-15