gpt4 book ai didi

c++ - 在 C++ 中使自己的宏先于库宏

转载 作者:行者123 更新时间:2023-11-28 05:41:16 26 4
gpt4 key购买 nike

我在 header.h 中有这样的东西:

#ifdef SOME_MACRO
#define MACRO_A
//Some code 1
#else
#define MACRO_A
//Some code 2
#endif

在 main.cpp 中:

#include "header.h"
#define SOME_MACRO
...
MACRO_A; //It should be Some code 1

有没有办法让 main.cpp 中的 SOME_MACRO 定义影响 header.h

在 header 前放置 #define SOME_MACRO 不会进行更改。

最佳答案

首先,是的,您必须将选择器的定义放在包含语句之前:

#define SOME_MACRO  // <<<<<<<<<<<<<<<<<<<<<<<
#include "header.h"

其次,如果我从字面上看你的例子,你可能错过了宏定义中的所有代码都需要放在一行中:

#ifdef SOME_MACRO
// Note the escaped line endings below: \
#define MACRO_A \
//Some code 1
#else
#define MACRO_A \
//Some code 2
#endif

关于c++ - 在 C++ 中使自己的宏先于库宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37048572/

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