У меня есть код, который содержит много сложных кодов ошибок #define, которые нелегко декодировать, так как они вложены через несколько уровней.Как я могу сгенерировать список значений #define из C-кода?
Есть ли какой-либо изящный способ, я могу получить список #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)
я имел бы большое количество подобного #defines соответствующего ОШИБКУ _ [\ ш _] +, что я хотел бы перечислить, так что у меня всегда есть текущий список кодов ошибок что программа может выводить. Мне нужно числовое значение, потому что это все, что программа распечатает (и нет, это не вариант для печати строки).
Предложения для gcc или любого другого компилятора были бы полезны.
Вы считали ** использование реальных констант ** вместо #defines? –
Изменение кода на consts было бы нецелесообразным, поскольку оно наследуется от источника восходящего потока. – djs