enum が便利だ

このプログラムid:yaneuraoさんに見ていただいた。
やはり流石だな。色々とツッコミ頂いたが特に役立った収穫は enum (列挙)についての話。コードを見てもらえば分かるが、ワタシは #define でエラーコードの値を変えている。 エラーが起きた時の受け皿となる関数は以下

DispErrorMessage( int iErrCode ){ switch( iRet ) ... }

iRet は他の関数の戻り値(エラーコード) int ErrCode を enum にするように指摘をうけたが意味が良く分からない。てことで以下説明

#define A 1
#define B 2
としていて、intで扱うと型チェックが行なわれません。

enum ResultType
{
A = 1,
B = 2,
};
と書いておいてResultTypeで扱えば型チェックが行なわれ、intと混合することもなくなりますし、誤って他の型に代入する心配もなくなります。
このように型に対して厳密にプログラムしていけば、コンパイラに型チェックしてもらえます。
そこで、型に対してstrictな言語ではこのように都度、型を定義して、それを用いるほうが理にかなっているのです。

つまり、戻り値が int でない場合(例えば func(){char iRet; 処理; return iRet;} ) だと iRet が char 型なのに DispErrorMessage( int iErrCode ) では char 文字を int で受けてしまう事になるのだが、enum だとそれをコンパイラ側が解消してくれるらしい
勉強になりました?