我有一个头文件,其中有几行以字符串#define 开头。现在我需要拆分这些行以从中获取所有必要的信息。我可以使用 string 的 Split 函数并使用索引获取特定的字符串,但我认为这不是一个真正安全的方法。
有两种类型的线,首先是“全局”线。
#define ERR_CAN_WARNING ERR ( 0 ) // 0x0001
#define ERR_CAN_ERROR ERR ( 1 ) // 0x0002
#define STAT_OK 0 // Comment
#define STAT_FAIL 1 // Hardwarefehler
#define STAT_ILL 2 // Kommando-/Parameterfehler
我需要的具体线路:
- #define 之后的名称,并决定它是 ERR 还是 STAT
- 如果它的 ERR 那么我需要 ERR() 中的值,如果它的 STAT 我只需要名称后面的值
- // 后面的文本行的描述
总之,在这个例子中我有两种线:状态线和错误线。
现在单位特定的行:
#define UNIT_STAT_ARMED 8 // Kommando nicht zulässig, weil CCU armiert ist
#define UNIT_STAT_PULSERR 9 // Fehler in Pulsdefinition
#define UNIT_STAT_SEQERR 0x0A // Parameter sequence passt nicht zur Pulsdefinition
#define UNIT_ERR_SDC_DSSDN ERR (8 ) // 0x0100 * SDC Shutdown durch Überstrom während Test
#define UNIT_ERR_SDC_HKSDN ERR (9 ) // 0x0200 SDC Housekeeping Shutdown
#define UNIT_ERR_SDC_TLMTSDN ERR (10 ) // 0x0400 SDC Shutdown wg Zeitüberschreitung während Test
#define UNIT_ERR_SDC_SYSSDN ERR (11 ) // 0x0800 * SDC Shutdown wg Anforderung durch CCU
我需要的具体线路:
- 单元的名称,它是#define 之后的 UNIT
- 决定它的 ERR 或 STAT 是在 UNIT 之后指示的
- 如果它的 ERR 那么我需要 ERR() 中的值,如果它的 STAT 我只需要名称后面的值
- // 后面的文本行的描述
由于在拆分字符串后使用了可能更改的索引,是否有一种很好的方法可以在不使用不安全的拆分函数的情况下处理此问题?