enumと#defineとconst

enum Mode {
    A,
    B,
    C
};

で綺麗に書けるのに

#define A_MODE 1
#define B_MODE 2
#define C_MODE 3

とわざわざ書く理由が分からない.そもそも#defineは置換で使うものなので,列挙とかで使うのは型もないし使用目的からいって違う気がする.Cみたいにconstがあくまで変数となる場合,定数として#defineを使うのは仕方ない気もするけど,それに対しても大抵enumが使えるわけで(#defineだと#undefとか考慮しないと駄目だしスコープががが).
こう思うのは俺が基本的にconst派だからなのかもしれない(C99なら配列のサイズ指定も出来るし).それにしてもCのconstは微妙だけど…