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 だとそれをコンパイラ側が解消してくれるらしい
勉強になりました?