将指针常量初始化为另一个指针常量内的字段吗?

时间:2018-10-31 00:03:57

标签: c pointers low-level

我在头文件中使用以下代码:

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 :(得分:1)

您可以将其定义为预处理器宏,编译器应对其进行优化。