Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c中定义的下接_C++_C_C Preprocessor - Fatal编程技术网

C++ c中定义的下接

C++ c中定义的下接,c++,c,c-preprocessor,C++,C,C Preprocessor,我得到了输出 #define print(args) printf args print(("Hello")); 如果我叫print,效果很好。 你能解释一下它是如何工作的吗?这是一个宏的例子 编译程序时,第一步是预处理器 预处理器将查找您的宏: Hello 这意味着如果你的程序中有 #define print(args) printf args 将被替换为 print(<some text>) 如果将=args=(“Hello”),则预处理器将替换 print(("Hell

我得到了输出

#define print(args) printf args
print(("Hello"));
如果我叫print,效果很好。
你能解释一下它是如何工作的吗?

这是一个宏的例子

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

预处理器将查找您的宏:

Hello
这意味着如果你的程序中有

#define print(args) printf args
将被替换为

print(<some text>)
如果将
=
args
=
(“Hello”)
,则预处理器将替换

print(("Hello"));

整条线路将是:

printf ("Hello")

这是一个宏的示例

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

预处理器将查找您的宏:

Hello
这意味着如果你的程序中有

#define print(args) printf args
将被替换为

print(<some text>)
如果将
=
args
=
(“Hello”)
,则预处理器将替换

print(("Hello"));

整条线路将是:

printf ("Hello")

哪一个是合法的c代码来打印
Hello

很好的详细答案。不过,关于风格,这是:“首先运行编译器。在激活编译器之前,程序会发现”我觉得有点混乱,或者至少不清楚。什么是“计划”?只有在阅读了一半的答案后,你才能给出一个提示(“预处理器”)它可能是什么。依我看,它拼错了。这里的“程序”可能是一个预处理器。预处理器宏实际上是文本的虚拟替换,没有任何语义/语法分析(这就是为什么建议宏避免使用constexpr函数),这是一个非常详细的答案。不过,关于风格,这是:“首先运行编译器。在激活编译器之前,程序会发现”我觉得有点混乱,或者至少不清楚。什么是“计划”?只有在阅读了一半的答案后,你才能给出一个提示(“预处理器”)它可能是什么。依我看,它拼错了。这里的“程序”可能是一个预处理器。预处理器宏实际上是文本的虚拟替换,没有任何语义/语法分析(这就是为什么建议宏避免使用constexpr函数)