常量的预处理器宏-格式错误

Preprocessor Macros for Constants - Bad Form?

本文关键字:格式 错误 处理器 预处理 常量      更新时间:2023-10-16

最近,我被分配到一个正在工作的项目(C++)中,在一个XML文档中有大量的字符串匹配/解析(类似于XML,但并不完全如此;这很奇怪)。因此,为了提高可读性并减少复制/粘贴错误,我在几个源文件的顶部放置了几个宏。作为参考,每个文件中的宏都不同。例如:

#define CATAGEORY_PATH "properties/event/classifications/classification/@category"
#define CLASSIFICATION_PATH "properties/event/classifications/classification/@classification"

我所做的事情被认为是糟糕的状态吗?和/或有更好的方法吗?目前,我喜欢这个方法,因为它在整个代码中都很清楚我所做的事情,但关于字符串的#define的一些事情让我很困扰

从人群中经验丰富的程序员那里,你有什么想法?另外,对于专业的开发者,你怎么看?如果这种区别冒犯了任何人,我深表歉意,但根据我的经验,这两种人群之间可能存在显著差异。

谢谢!

常数的替代方案是static const

static const char category_path[] = "properties/event/classifications/classification/@category" ;

通过这种方式,至少有一点类型信息用它来修饰。