C 条件付きプリプロセッサディレクティブで文字列を比較する方法 質問する

C 条件付きプリプロセッサディレクティブで文字列を比較する方法 質問する

C でこのようなことをしなければなりません。これは char を使用する場合にのみ機能しますが、文字列が必要です。どうすればできますか?

#define USER "jack" // jack or queen

#if USER == "jack"
#define USER_VS "queen"
#elif USER == "queen"
#define USER_VS "jack"
#endif

ベストアンサー1

可変長文字列の比較をプリプロセッサ ディレクティブで完全に行う方法はないと思います。ただし、次のようにすることはできるかもしれません。

#define USER_JACK 1
#define USER_QUEEN 2

#define USER USER_JACK 

#if USER == USER_JACK
#define USER_VS USER_QUEEN
#elif USER == USER_QUEEN
#define USER_VS USER_JACK
#endif

または、コードを少しリファクタリングして、代わりに C コードを使用することもできます。

おすすめ記事