【发布时间】:2015-01-15 08:04:43
【问题描述】:
我正在开发一个客户端-服务器应用程序,其中包含一些用于调试的通用文件。 我的查询是在运行时将这个公共代码(调试文件)的单独副本分配给两个模块,或者它们共享相同的代码空间。例如:
我想为客户端和服务器定义不同的日志标签。为此,我在客户端和服务器的 make 文件中定义了两个标志 CLI_LOG_TAG_ENABLE 和 SERVER_LOG_TAG_ENABLE。现在在 debug.h
//debug.h
#ifdef CLI_LOG_TAG_ENABLE
#define LOG_TAG "CLIENT"
#elif SERVER_LOG_TAG_ENABLE
#define LOG_TAG "SERVER"
#endif
因此,在朗姆酒时间,由于进行文件更改,两个标志都将被启用。 你能告诉我会是什么行为以及为什么吗?
【问题讨论】:
-
#elif与#ifdef不匹配。你需要#elif defined。
标签: c++ c logging c-preprocessor