変更可能な変数をスイッチ ケース ラベルとして使用するにはどうすればよいでしょうか。つまり、マクロが定義されています。ただし、条件に応じて実行時にこの値を変更する必要があります。どうすればこれを実装できますか?
以下に例を示します。
ここで、ケース「FOO」は機能しますか?
#define CONDITION (strcmp(str, "hello") == 0)
#define FOO1 (10)
#define FOO2 (20)
#define FOO ((CONDITION) ? (FOO1) : (FOO2))
char *var="hello";
int main()
{
int p = 20;
switch(p) {
case FOO:
printf("\n case FOO");
break;
case 30:
printf("\n case 30");
break;
default:
printf("\n case default");
break;
}
return(0);
}