私は、c の 2 つのよく知られた本で 2 つの異なることを発見しました。最初の 1 つは、「マクロ展開で引用符で囲まれた文字列で正式なパラメーターが置き換えられない」です - K&R c 言語ページ 76
2 つ目はコードです。
#define PRINT(var,format) printf("variable is %format\n",var)
PRINT(x_var,f);
後のマクロ呼び出しは次のように展開されます
printf("x_var is %f\n",x_var);
- これは ansi c - E. balagurusamy (448 ページ) でのプログラミングによるものです。
確かに、2 つの引用は互いに矛盾しています。私が知る限り、最初のものは真実であり、私のコンパイラはそう結果を出します。しかし、2冊目も有名で人気があります。以前のバージョンの c にそのようなものがあったのか、それとも 2 番目の引用が間違っているのか知りたいです。