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