【问题标题】:Using #define one time for multiple source files对多个源文件使用 #define 一次
【发布时间】:2011-02-26 03:42:42
【问题描述】:

在 Visual C++ 中有没有一种方法可以在 cpp 文件中#define 某些内容并在其他 cpp 文件中也定义它?

【问题讨论】:

  • 不把它放在头文件里有什么原因吗?

标签: c++ visual-c++ c-preprocessor


【解决方案1】:

有人已经在项目属性中提到了预处理器设置。

但你也可以只选择你想要定义的.cpp中的几个,然后右键单击它们并转到属性,然后:C/C++ -> Preprocessor -> Preprocessor Definitions

它将仅为这些 .cpp 文件定义定义,而不是您的整个项目。

【讨论】:

    【解决方案2】:

    定义.h:

    #define foo bar
    

    class.h:

    #include "definitions.h"
    

    【讨论】:

    • #ifndef _DEFINITIONS_H #define _DEFINITIONS_H #define foo bar #endif
    • @ebasconp:在这种情况下,包含警卫不是绝对必要的,因为只要新定义与先前的定义相同,就可以重新定义宏(如果您包含两次标题,两个定义显然会相同)。
    【解决方案3】:

    #define 在头文件 (.h) 中,#include 在所有 .cpp 文件中。

    【讨论】:

      【解决方案4】:

      至少有两种选择:

      • 将定义放入头文件中,并将该头文件包含在需要定义的所有源文件中
      • 使用the /D compiler option定义宏(也可以在C/C++ -> Preprocessor -> Preprocessor Definitions下的项目属性中设置)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-10
        • 1970-01-01
        • 2020-10-08
        • 2017-11-08
        • 2019-08-01
        相关资源
        最近更新 更多