#define print(args) printf args
print(("Hello"));
我得到了输出
Hello
如果我打电话给它,它工作正常。
您能解释一下它是如何工作的吗?
最佳答案
这是一个宏的示例。
编译程序时,第一步是预处理器。
预处理程序会找到您的宏:
#define print(args) printf args
这意味着如果您的程序中有类似
print(<some text>)
然后
<some text>
的值将在您的宏中作为args
处理,即代码print(<some text>)
将被替换为
printf <some text>
现在,您具有以下代码行:
print(("Hello"));
如果输入
<some text>
= args
= ("Hello")
,则预处理器将替换print(("Hello"))
与
printf ("Hello")
整个行将是:
printf ("Hello");
这是打印
Hello
的合法c代码。关于c++ - 了解C中的#define,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59351519/