c - 将 32 位值分配给无符号 uint8_t 数组

标签 c pointers data-structures

我的结构如下所示。

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;

它给我错误,错误:赋值中的类型不兼容。在最后一行。我想知道执行上述赋值的最佳方法是什么。

感谢任何帮助。

最佳答案

以下代码将数据复制到 32 字节的前 4 个字节。

tmpdata = 0xfdfcfefa;
memcpy(entry->data, &tmpdata, sizeof(uint8_t) *4);

关于c - 将 32 位值分配给无符号 uint8_t 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12346057/

相关文章:

c - 未定义的输出(K&R 1.19)

c++ - 参数采用函数的两种语法样式?

c - 我是否在这里创建了两个单独的指针,或者我是否正确地调用了作为命令的单个内存地址?

c - 如何在 Windows 下以编程方式确定驱动器是否为 DVD-RW/CD-RW?

c - 具有扩展语法的 POSIX 正则表达式与应有的位置不匹配

c - 将 Java NIO Files.walkFileTree 访问者移植到 C,维护线程安全

类型转换指针警告

algorithm - 我对此算法的复杂度 O(n + k log n) 的解释是否正确?

algorithm - 找到第一个唯一元素

arrays - 在数组中查找 K 个最小值(堆与 QuickSelect)