定数はdefineよりconstでグローバル変数を使うよ,僕は
定数を定義するとき
#define TOLERANCE 0.3e-10
とかってするマクロという手法を僕はあまりすきでなくて,
namespace bulldog { extern const double TOLERANCE; }
こういう方が好き。
実際の値はソースファイルを追っかけなきゃいけないけど,名前空間で区別できたほうが便利かなー,と思って。
それと僕はいわゆるCAEソフトをつくっているので,節点の〜とか要素の〜とか似たような処理でも名前を区別しなきゃいけないのが出てくるので,
その都度似たような,けれど若干違うみたいな名前をつけるのもね〜。
あとマクロってまぁ定数とかならね,いいんだけど式とか書いちゃうと副作用もあるし。そういう時はテンプレート+インライン化で。