0

你能帮我解决以下问题吗?我有一个文件 log.cpp,其中包含在项目中的不同文件中。我需要在其中一个文件中声明定义,它必须影响 log.cpp,而 log.cpp 或 log.h 没有实际变化。我怎样才能做到这一点?不接受带有预编译头的解决方案。

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

4

2 回答 2

1

如果要影响标头,可以将该定义放在包含之前:

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

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

于 2012-12-05T10:08:14.597 回答
0

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

于 2012-12-05T10:08:25.727 回答