Я попробовал скомпилировать в опенваткоме - не получилось c1.c(48): Warning! W131: No prototype found for function 'MAP1'
c1.c(48): Error! E1011: Symbol 'CASE_STRINGIFY' has not been declared
c1.c(48): Error! E1063: Missing operand
c1.c(48): Error! E1012: Expression is not a function
c1.c(48): Error! E1063: Missing operand
c1.c(48): Error! E1012: Expression is not a function
c1.c(48): Error! E1063: Missing operand
c1.c(48): Error! E1012: Expression is not a function
c1.c(50): Error! E1011: Symbol 'CASE_STRINGIFY' has not been declared
c1.c(50): Error! E1063: Missing operand
c1.c(50): Error! E1012: Expression is not a function
c1.c(50): Error! E1063: Missing operand
c1.c(50): Error! E1012: Expression is not a function
c1.c(50): Error! E1063: Missing operand
c1.c(50): Error! E1012: Expression is not a function
c1.c(58): Error! E1058: Cannot use typedef 'Colors' as a variable
c1.c(58): Error! E1009: Expecting ';' but found 'c'
c1.c(58): Error! E1063: Missing operand
c1.c(59): Error! E1011: Symbol 'c' has not been declared
c1.c(59): Error! E1071: Type of parameter 1 does not agree with previous definition
c1.c(59): Note! I2003: source conversion type is 'int *'
c1.c(59): Note! I2004: target conversion type is 'enum Colors const *'
c1.c(59): Note! I2002: 'Colors_tostr' defined in: c1.c(50)
c1.c(60): Error! E1071: Type of parameter 1 does not agree with previous definition
c1.c(60): Note! I2003: source conversion type is 'int *'
c1.c(60): Note! I2004: target conversion type is 'enum Numbers const *'
c1.c(60): Note! I2002: 'Numbers_tostr' defined in: c1.c(48)