【发布时间】:2012-06-29 05:39:12
【问题描述】:
我在两本著名的 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中是否有这样的东西,或者第二次引用是错误的。
【问题讨论】:
-
听起来您需要摆脱其中一本书。我将让您猜测要摆脱的那个是否包含该语言的发明者作为作者的那个。
-
我更愿意给 E.Balagurusamy 一些信任 - 也许报价不准确?
-
可能只是编辑错误。书本大小差异可以轻松实现:D
标签: c string macros c-preprocessor