我在头文件中使用了以下代码:
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是一个非常常见的操作,所以我想把它分解成一个直接的方便变量,这样就可以减少打字等。
使用此代码,编译器会抱怨"initializer元素不是常量"。有没有办法向编译器正确地表达这一点?当然,我可以计算结构中的字节数,但这既麻烦又容易出错。
您可以将其定义为预处理器宏,编译器应该对其进行优化。