>>10
教科書的にはどれもこれも手放しで const マンセーしてるけど
実用的には define のほうが都合がいい場面があるのは確か。
例えば

#ifndef hoge
#define hoge ...
#endif

みたいなことをしておけばソースコードを変更せずに
コンパイル時にマクロを指定して動作を変更できる。