-D 宏和 #define 宏 5 的优先级

Precedence of -D MACRO and #define MACRO 5

本文关键字:优先级 宏和 #define      更新时间:2023-10-16

大家好,我在Visual C++ 6.0 IDE上编程,我的问题是: 我尝试从命令行定义宏 起初我这样做了: project->settings c++ 命令定义,我输入了这个宏: -DHELLO="HELLO! "当我从源代码中使用它时,我输入了:

#ifdef HELLO
HELLO;
#endif

在此之前,一切都好。

但是我的问题是那些需要参数的宏,

那么我如何设置带有参数的宏,第二个问题是如何从源代码扩展它?

任何帮助真的非常感谢。我花了很多时间在谷歌上搜索和搜索,阅读电子书,但这没有帮助。

似乎不可能...

如果您查看Microsoft文档,/D选项的构造如下:

/Dname[= | # [{string | number}] ]

由于似乎无法添加参数,因此我无法使用此命令行选项创建类似函数的宏...


注意:我很奇怪,我在Visual Studio上尝试过,我的智能感知将其视为类似函数的宏,因此代码中没有可见的错误(它下面没有红线(,但是当需要编译时,我得到:

error C3861: 'MACRO_TEST': identifier not found 

使用类型定义:

/D"MACRO_TEST( tst )= tst" // or -D"MACRO_TEST( tst )= tst"