У меня есть код, который содержит много сложных кодов ошибок #define, которые нелегко декодировать, поскольку они вложены в несколько уровней.
Есть ли какой-нибудь элегантный способ получить список #defines с помощьюих окончательные числовые значения (или какими бы они ни были)?
В качестве примера:
<header1.h>
#define CREATE_ERROR_CODE(class, sc, code) ((class << 16) & (sc << 8) & code)
#define EMI_MAX 16
<header2.h>
#define MI_1 EMI_MAX
<header3.h>
#define MODULE_ERROR_CLASS MI_1
#define MODULE_ERROR_SUBCLASS 1
#define ERROR_FOO CREATE_ERROR_CODE(MODULE_ERROR_CLASS, MODULE_ERROR_SUBCLASS, 1)
У меня было бы большое количество похожих # определений, соответствующих ERROR _ [\ w _] +, которыеЯ хотел бы перечислить, чтобы у меня всегда был текущий список кодов ошибок, которые программа может вывести.Мне нужно числовое значение, потому что это все, что программа выведет на печать (и нет, вместо этого нельзя распечатать строку).
Полезны предложения для gcc или любого другого компилятора.