所以我有一个定义的8字节数据结构
typedef struct __attribute__((__packed__)) entry{
// something here total 64 bits;
}entry_t;
我有一个void* base
,它是一个指向我要放入条目的基地的指针。
将
entry_t a;
*base = a;
做这个工作?
或者我必须将指针转换为entry_t
的指针?
更新
对不起,我没有提到我不能使用memcpy,因为我使用的内核还没有实现memcpy。
答案 0 :(得分:5)
或者:
*((entry_t *)base) = a;
或
memcpy(base, &a, sizeof a);
当然,确保实际上有8个字节可以复制到其中。
答案 1 :(得分:1)
将指针转换为unsigned char *
并使用赋值运算符的8次使用写入8个字节(循环或展开)。