我的结构如下所示。
typedef struct
{
attribute_code_t field_id;
uint8_t instance_num;
uint8_t length;
uint8_t data[32];
uint32_t crc_value;
}table_entry_t;
我想按如下方式填充结构。
entry->field_id = 54;;
entry->instance_num = 0;
entry->length = 4;
entry->data = 0xfdfcfefa;
它给了我错误,错误:赋值中的不兼容类型。在最后一行。我想知道执行上述任务的最佳方法是什么。
感谢任何帮助。
答案 0 :(得分:4)
你有32字节的数组,并且你试图为它们分配一个4字节的值。你想要什么结果?如果它填充前4个字节,请单独分配。或者使用常数数组:
static const uint8_t __initializer[] = { 0xfd, 0xfc, 0xfe, 0xfa };
entry->length = sizeof(__initializer);
memcpy( entry->data, __initializer, sizeof(__initializer) );
由于不同平台上的各种字节顺序,强烈建议不要将int复制到数组中。