/* macros.h : macros used to define enumerated types */ #if !defined(__MACROS_H__) #define __MACROS_H__ /* * if the constants are not to be enumerated, the typedef does not * exist, enabling the programmer to choose the memory usage for the * variable. it is his responsibility to ensure that the scope is enough * for the enum range. the enumerated type is faked with the specified * type. * if the constants are enumerated, the type exists, and the variables * are of this type. the problem is that the memory usage is implementation- * dependant */ #if defined(ENUMERATE_CONSTANTS) #define M_BeginDeclareEnumerate(tdeWhatever) \ typedef enum tdeWhatever##_ \ { #define M_EndDeclareEnumerate(tdeWhatever, type) \ } tdeWhatever; #else /* ENUMERATE_CONSTANTS */ #define M_BeginDeclareEnumerate(tdeWhatever) \ enum \ { #define M_EndDeclareEnumerate(tdeWhatever, type) \ }; \ typedef type tdeWhatever; #endif /* !ENUMERATE_CONSTANTS */ #endif /* !__MACROS_H__ */