Always use an enum instead of defines and always close the list with an additional count. This makes life simpler and helps the compiler.
Instead of defines:
#define TypeA 0#define TypeB 1#define TypeC 2#define MAX_TYPES 3// arrayint m_nTypes[MAX_TYPES]// loopfor(int i=0; i
Use enums with count:
enum eTypes{ TypeA, TypeB, TypeC, TypeCount // !count!} TYPES;// use the TypeCount to specify the array-size:int m_nTypes[TypeCount]// use the TypeCount in loops:for(int i=0; i