Инициализация константы указателя для поля внутри другой константы указателя? - PullRequest
0 голосов
/ 31 октября 2018

У меня есть следующий код, который я использую в заголовочном файле:

static const struct ExecDataABI* const qtumExec = (const struct ExecDataABI* const) EXEC_DATA_ADDRESS;
static const UniversalAddressABI* const qtumSender = (const UniversalAddressABI* const) &qtumExec->sender;

По сути, есть раздел памяти, доступный только для чтения, в котором есть информация ExecDataABI. Извлечение qtumExec-> sender - очень распространенная операция, поэтому я хочу разбить ее на прямую вспомогательную переменную, чтобы меньше печатать и т.д.

С этим кодом компилятор жалуется "элемент инициализатора не является константой". Есть ли способ выразить это правильно компилятору? Конечно, я могу считать байты в структуре, но это громоздко и подвержено ошибкам.

1 Ответ

0 голосов
/ 31 октября 2018

Вы можете определить его как макрос препроцессора, и компилятор должен оптимизировать его.

...