【发布时间】:2019-02-28 21:42:55
【问题描述】:
在用数据填充结构数组之前,我无法声明它们。
我的结构是这样的:
typedef struct {
uint8_t * p_data; ///< Pointer to the buffer holding the data.
uint8_t length; ///< Number of bytes to transfer.
uint8_t operation; ///< Device address combined with transfer direction.
uint8_t flags; ///< Transfer flags (see @ref NRF_TWI_MNGR_NO_STOP).
} nrf_twi_mngr_transfer_t;
在我的代码中,我试图像这样声明数组:
struct nrf_twi_mngr_transfer_t start_read_transfer[10];
但是我得到一个编译错误:
数组类型有不完整的元素类型'struct nrf_twi_mngr_transfer_t'
我已经四处搜索,因为我认为这应该是一件常见的事情,但我无法弄清楚我做错了什么。也许是因为其中一个元素是指针?但是那个指针应该是固定大小的吧?
非常感谢
【问题讨论】:
-
nrf_twi_mngr_transfer_t start_read_transfer[10];- 即不需要struct,你已经在定义它了。 -
没有定义
struct nrf_twi_mngr_transfer_t类型。您的typedef定义了名为nrf_twi_mngr_transfer_t的类型,恰好是struct。 -
在使用 typedef 名称时去掉 strict 关键字。