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

10-11 15:20
查看更多