我的项目调试输出变得太复杂,人类无法处理,所以我决定使用标签(或标签)来简化日志消息的分组和过滤。
我还希望能够在已定义某些标签的地方添加更新的标签。
例如,如果头文件包含在多个C文件中并定义了特定标记,我希望在每个C文件中添加另一个可选标记。我试图使用自引用宏来实现这一点,但由于预编译器只处理语句一次,所以它没有用。任何想法如何正确地做到这一点?
header.h:
#define TAGS "aaa"
file1.c:
#include "header.h"
#ifndef TAGS
#define TAGS "bbb"
#else
#define TAGS TAGS ", bbb"
#endif
printf(TAGS);
file2.c:
#ifndef TAGS
#define TAGS "ccc"
#else
#define TAGS TAGS ", ccc"
#endif
printf(TAGS);
在上面的示例中,我希望将“aaa bbb”作为file1的输出,将“ccc”作为另一个文件中的“ccc”。