1. ホーム
  2. c

[解決済み] C 言語の条件付きプリプロセッサディレクティブで文字列を比較する方法

2022-12-07 23:30:51

質問

C言語でこのようなことをしたいのですが、charを使えばうまくいくのですが、文字列が必要です。どうすればいいのでしょうか?

#define USER "jack" // jack or queen

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

どのように解決するのですか?

可変長の文字列比較をプリプロセッサーディレクティブで完全に行う方法はないと思います。 しかし、おそらく次のようにすることができます。

#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のコードを使うこともできます。