C++での理解だけど、

いちいち
#define ENEMY_RED=0
#define ENEMY_BLUE=1
と数字を書かなくても名前を定義すると連続した数字を定義してくれる。

例えば敵の種類を定義するenumを書くとき
enum{
ENEMY_RED,
ENEMY_BLUE,
ENEMY_MAX,
};
作ってる途中では何種類の敵を定義するか分からないので削ったり増やしてると数字の定義を間違ったりしてしまうことが起きてしまうが、enumにしておけば数字は勝手に詰まるので被らない。
あと最後に_MAXなどの最大数を定義しておくと何かと役に立つ。