gpt4 book ai didi

c++ - 预处理器 C++ 的工作

转载 作者:搜寻专家 更新时间:2023-10-31 00:39:31 26 4
gpt4 key购买 nike

#define NAME VALUE 

我知道只要编译器看到这个,它就会用 VALUE 替换 NAME。但是我对预处理指令的工作感到困惑,例如:

#define CONFIG_VAR(name, type, value) 

这并没有告诉编译器替换任何东西,但我可以看到像

这样的语句
CONFIG_VAR(rank, int, 100)

编译成功。这是如何运作的 ?

最佳答案

在您的示例中,这将根本不执行任何操作。接受任何参数,即使是那些看起来应该给出编译错误的参数,并且整个宏调用将替换为空字符串。

但是,如果您稍后将定义替换为类似以下内容:

#define CONFIG_VAR(name, type, value) add_config_var<type>(name, value)

它会突然做一些有用的事情。所以,我猜想宏是一个占位符,表示在程序的那部分(尚未)实现或不可用的功能。

关于c++ - 预处理器 C++ 的工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16064821/

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