为特定文件定义

Define for specific files

本文关键字:文件定义      更新时间:2023-10-16

你能帮我解决以下问题吗?我有一个文件日志.cpp其中包含项目中的不同文件。我需要在其中一个文件中声明定义,它必须影响 log.cpp,而无需对 log.cpp 或 log.h 进行实际更改。我该怎么做?具有预编译标头的解决方案是不可接受的。

还有一个问题,如何定义静态函数?我的意思是,如果我在我的代码中调用了CClass::Func,我该如何定义它以重定向到其他内容?

如果你想影响标题,你可以把这个定义放在包含之前:

#define SOMEDEFINE SOMEVALUE
#include log.h
// May want to remove or change our define here
#undef SOMEDEFINE

这是假设你的意思是你包括log.h,因为你不想包含其他文件中的cpp。拥有单独的 .h 和 .cpp 文件的想法是,.h 是所有编译单元看到的接口,而 cpp 是代码本身,它应该只编译一次,并且不应该因您引用的编译单元而异。

使用我所知道的所有C++编译器,您可以在命令行上#define符号。通常,这是使用 -D 选项完成的。