gpt4 book ai didi

c - 在 C 中存储数据类型

转载 作者:太空宇宙 更新时间:2023-11-04 05:21:05 25 4
gpt4 key购买 nike

我在网上找不到任何内容可以说明如何将数据类型放入预分配的内存块中。我讨厌自己做内存管理,但在这种情况下我必须这样做。

我有一 block 10 字节长的内存。 (我的应用程序是 64 位的,使用 Visual C。)我想要做的是将 1 个无符号整数放入字节 0-3,将一个字符放入 [4],将一个字符放入 [5],将另一个无符号整数放入 [6- 9].

我已经尝试过 ssprintf。

所以我想找出一种方法来 1) 将它存储到这个内存块中并 2) 检索它。

最佳答案

IMO,实现这一点的一个好方法是定义一个包含您描述的数据的结构:

#pragma pack(1)
struct complex {
uint32_t a; // 4 bytes
char b[2]; // 2 bytes (without paddding)
uint32_t c; // 4 bytes
};

然后您可以简单地填写您的数据:

struct complex var;
var.a = 10;
var.b[0] = 'x';
var.b[1] = 'y';
var.c = 20;

注意 #pragma pack(1) 指令告诉编译器使用 1 字节对齐。如果你不知道它是什么意思,你可以阅读关于 data structure alignment .

关于c - 在 C 中存储数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7968340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com