C/C++ (BetterC) (※ Windows API 実装あり) でやっています。
C言語での#defineマクロを使って定数化したり、enumキーワードを使って列挙型を定義したりしたとき、
定数を文字列化する方法はありますでしょうか。
たとえば、
#define ABC 123
としたとき、
"ABC" の方を出力したいのです。
組んだクラスや関数の戻り値を確かめたい( テストする ) 場合、数値を出力してもわかりづらいので。
主な用法は戻り値として返る可能性がある数値データ(int?) を #define 等で定数化し、
関数の処理がうまくいっているかチェックする。です。
たとえば、TEXTマクロ ( Windows API の TEXTマクロ。 ) だとすると ( 使い道が違うと思いますが、例なので。 )、
C/C++
1#define ERROR1_T -1 2#define ERROR2_T -2 3#define ERROR3_T -3 4#define S_OK_T 0 5 6 7int test( void ){ 8 9 // ファイルが存在しなかった等 10 if( .... ) return ERROR1_T; 11 12 // 処理&戻り値を返す 13 if( .... ){ 14 return ERROR2_T; 15 }else if( .... ){ 16 return ERROR3_T; 17 }else{ 18 return S_OK_T; 19 } 20} 21 22int main( void ){ 23 24 // 戻り値を 文字列化してわかりやすくする。 25 cout << TEXT( test() ) << endl; 26return 0; 27} 28
みたいな感じです。
vectorやlist等のSTLや配列に、対応する文字列を入れる方法もありますが、
定数が多いとかなり面倒なので。
数列ではなく文字列を定数化 ( #define ERROR1_T "ERROR1" ) 等だと面倒なので。
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー