¿Están los nombres de macro estilo C sujetos a las mismas reglas de denominación que los identificadores? Después de una actualización del compilador, ahora se emite esta advertencia para una aplicación heredada:¿Cuáles son los caracteres válidos para los nombres de macro?
warning #3649-D: white space is required between the macro name "CHAR_" and its replacement text
#define CHAR_& 38
Esta línea de código es definir una constante para un símbolo de unión valor ASCII.
#define DOL_SN 36
#define PERCENT 37
#define CHAR_& 38
#define RT_SING 39
#define LF_PAR 40
que suponer que esta definición (en realidad no referenciado por cualquier código, por lo que yo puedo decir) está libre de errores y debe ser cambiado a algo así como "CHAR_AMPERSAND"?
ISO/IEC 9899: TC3 6.10/1 especifica la gramática de las directivas de preprocesamiento, haciendo explícito que los nombres de las macros comparten exactamente las mismas reglas que los identificadores. 6.4.2.1/1 especifica las reglas para los identificadores. – saffsd