c++ - 是否可以使用其他 cpp 文件中的#define?

标签 c++ c-preprocessor

我认为预处理器会一个接一个地处理文件,但我不知道如何使用 include 来处理,所以我认为这是不可能的,但很高兴听到其他人的想法。

我在a.cpp中有:

#define A 1

我想在 2.cpp 中使用它。

编辑: 我无法修改第一个文件。所以现在我只是复制了定义。但问题仍然悬而未决。

最佳答案

其他翻译单元看不到源文件中的定义。实现文件单独编译。

你可以

  • 将它们放在标题中并包含在内
  • 使用编译器的选项
  • 以理智的方式去做 - extern const int A = 1; 在一个实现文件中,并在你想使用它时声明它 extern const int A;

其中,我会说第一个选项可能是您可以使用的最糟糕的选项

关于c++ - 是否可以使用其他 cpp 文件中的#define?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14275950/

相关文章:

c# - 有没有办法在运行时设置#define 的值?

c++ - fstream 和文件指针移动

c++ - Qt5 : error: ‘qt_metacall’ is not a member of

c++ - 删除字符串后在 C++ 中检测到堆损坏

c++ - VC++ 与 GCC 预处理器

c++ - #定义映射

c - C 中的预处理器命令算作 token 吗?

c - 头文件中的完整宏

c++ - 保留插入顺序的 C++ HashMap

c++ - MPI分布阵列