c中#define的理解

Underatanding of #define in c

#define print(args) printf args
print(("Hello"));

我得到了输出

Hello

如果我调用 print 它工作正常。 你能解释一下它是如何工作的吗?

这是一个宏的例子。

编译程序时,第一步是预处理器。

预处理器找到您的宏:

#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 代码