>>685
式ではない値を含めて#defineを全て括弧で囲っていなくて、演算子の優先順位の
関係でバグが出ることはあるが、宣言に括弧を使ってバグが出るとは初耳だなぁ。

> グローバル変数使ってるとか、tableのnullチェックやってないとか、突っ込みどころ満載なんだけど

グローバル変数? 外部ファイル等から動的に読み込むなら空配列のチェック
も必要だが、プログラム定数配列で空配列かどうかチェックする必要はない。

Cでも別に関数内部でstatic宣言して、その後に関数内部で#defineすれば
いいだけ。 C++のクラスならstaticなメンバ関数やConst型のメンバ変数、
enum値にするとか、いくらでも書き方はある。

そもそも、あくまで例を出しただけだが、馬鹿はあさっての方向にしか突っ
込みできんのだね。