你能帮我解决以下问题吗?我有一个文件 log.cpp,其中包含在项目中的不同文件中。我需要在其中一个文件中声明定义,它必须影响 log.cpp,而 log.cpp 或 log.h 没有实际变化。我怎样才能做到这一点?不接受带有预编译头的解决方案。
还有一个问题,如何定义静态函数?我的意思是如果我CClass::Func
调用了我的代码,我该如何定义它以重定向到其他东西?
你能帮我解决以下问题吗?我有一个文件 log.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
选项完成的。