ビットごとの計算を行い、2 つの変数を交換するマクロを入力したかった
プログラムでそのコードを何度も入力する代わりに、マクロを次のように使用することにしました。
#define swapVars(p,a,b) {p=a^b;a=^p;b=^p;}
コードでマクロを使用する場合
int a = 10, b=19;
int swap_dummy = 0; //May contain anything
swapVars(swap_dummy, a, b);
printf("a = %d | b = %d", a, b);
差し替えでエラーが出ました。マクロ定義が間違っていませんか?(ちなみに、そうである必要があります)。この状況に適したマクロは何ですか?