特定のインターフェイスを調整しているときに、多くの#defines
.
私が持っているのは次のようなものです:
#define STATUS_OK 0x00
#define STATUS_FAIL 0x01
#define STATUS_WAIT 0x02
#define STATUS_ILLEGAL 0x03
#define STATUS_FULL 0x04
...
このような定義はたくさんありますが、すべてを書く必要がなかったので、とても満足しています。
ただし、や などの代わりに他のステートメントをうまく使用できますがswitch
、今は逆の方向にしたいと考えています。if
0x00
そこで、0x00
識別子「STATUS_OK」を出力したいと思います。
私の知る限り、これは不可能ですが、可能にするための良い回避策は何ですか?! 次のような配列をセットアップすることは可能でしょうか。
arrayNames[STATUS_OK] = _STATUS_OK_
どこで解決され、「 STATUS_OK 」に解決されますSTATUS_OK
か0x00
?_STATUS_OK_
さらに、これを行うために可能な限り少ないメモリを使用するソリューションを探しています。
これは私ができるようにしたいことです:
prinf("%s",resolve(0x00));
-> "STATUS_OK"
私が探しているものを明確にしたことを願っています。
編集:
迅速で有用な回答をありがとうございました。私は Larsmans のソリューションを使用し、それを qrdl のソリューションと組み合わせようとするかもしれません。しばらく時間がかかる場合があります。完了したら、この編集を置き換えます。