我正在使用帮助程序类以一种简单的方式在 android ndk 中记录消息。它是这样工作的:
LOGE("ClassTag", "Message");
因为我不想每次都想记录一些东西时手动编写标签,所以我为每个类定义定义了一个 TAG 常量:
#define TAG "Class1Tag"
然后我可以通过以下方式登录:
LOGE(TAG, "Message");
当一个定义了 TAG 常量的类包含另一个声明了相同 TAG 常量的类时,问题就出现了。然后弹出如下编译错误:
error: "TAG" redefined
我怎样才能摆脱重新定义而不必为每个#define 使用不同的标识符?
最佳答案
听起来你在头文件中定义了 TAG 值。为了让这类东西正常工作,你应该只在实现文件中定义它。因为实现文件没有包含在其他文件中,所以不会有重定义。
这意味着日志语句只能出现在实现文件中。
关于c++ - 在许多类中使用具有相同标识符的 #define 会导致 "error: <ID> redefined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15326033/