如何定义和使用动态分配的数组,其成员是static const
?
背景:我需要执行上述操作,以存储运行时请求的多个事务。下面的片段举例说明了如何定义事务。此代码使用 Nordic Semiicondictor nRF5x SDK。
static app_twi_transfer_t const transfers[] =
{
APP_TWI_WRITE(MMA7660_ADDR, p_reg_addr, 1, APP_TWI_NO_STOP),
APP_TWI_READ (MMA7660_ADDR, p_buffer, byte_cnt, 0)
};
static app_twi_transaction_t const transaction =
{
.callback = read_mma7660_registers_cb,
.p_user_data = NULL,
.p_transfers = transfers,
.number_of_transfers = sizeof(transfers)/sizeof(transfers[0])
};
APP_ERROR_CHECK(app_twi_schedule(&m_app_twi, &transaction));
最佳答案
How can one define and use a dynamically allocated array, whose members are static const?
你不能。数组的成员必须具有与数组本身相同的存储类和链接,因此动态分配的数组不能具有静态成员。然而,这样的数组可以具有静态存储类和/或链接的副本或指向对象的指针。
关于c - 具有静态 const 成员的动态分配数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35946845/