расширение макропеременной внутри строки в кавычках

Я нашел две разные вещи в двух известных книгах на c, первый «Формальные параметры не заменяются в строке в кавычках в расширении макроса» - на языке K&R c, стр. 76

второй - это код,

#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.

Конечно, две цитаты противоречат друг другу. насколько я знаю, первый из них верен, и мой компилятор дает мне такой результат. Но вторая книга также хорошо известна и популярна. Я хочу знать, были ли такие вещи в предыдущих версиях c или вторая цитата является ложной.

10
задан LittleBobbyTables 15 April 2013 в 17:35
поделиться