gpt4 book ai didi

c++ - 在 C++ 中定义简单宏时出错

转载 作者:太空宇宙 更新时间:2023-11-04 15:20:25 24 4
gpt4 key购买 nike

我不熟悉在 C++ 中使用宏。我写了一个简短的宏,但我不知道它有什么问题。请帮忙。

#include <iostream>
using namespace std;

#define start B(
#define end )
#define B(x) cout<<x;


int main (int argc, char *argv[])
{
start 2014 end
}

最佳答案

C 预处理器未按您预期的方式工作。宏在一次中展开,这意味着预处理器会将“开始”替换为“B(”,将“结束”替换为“)”并将结果提供给编译器。

由于没有第二道预处理,中间结果“B(2014)”不会被解释为预处理器宏。相反,C++ 编译器会看到一个函数调用,这不是您想要的。

关于c++ - 在 C++ 中定义简单宏时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20762194/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com