gpt4 book ai didi

c - C 中同一个变量的两个句柄

转载 作者:行者123 更新时间:2023-11-30 18:39:14 24 4
gpt4 key购买 nike

有什么方法可以创建两个指向同一内存位置的变量,以便我可以以 int、float、char 等任何我喜欢的方式读取相同的内存?

我想要这样的东西,只是没有指向 f 的指针,这样我就不必每次读/写 f 时都取消引用。

char myArray[100];
float* f = (float *)&myArray[10];

我想要在 C 中最接近 C++ 的引用。

我希望这个问题有意义。

编辑:我从闪存读取字节流(4 Kb 值)。该流包含短整型、整数和 float 。我知道这些整数和 float 在数组中的位置。我想像普通变量一样读取/写入上述整数和 float 。

最佳答案

此示例将数据读入预定义的struct,并进行打包(如果需要)。当心字节序!至于数据类型:目标上的 int 在您的 PC 上可能是 short

#include<stdio.h>

#pragma pack(push, 1)
struct mydata {
int version;
char title[16];
float reading[8];
} mydata;

#pragma pack(pop)

int main(void)
{
FILE *fp;
struct mydata data = {0};
fp = fopen("mydata.bin", "rb");

if (1 != fread(&data, sizeof(data), 1, fp))
{ // error
}

printf("Version = %d\n", data.version);

fclose(fp);
return 0;
}

关于c - C 中同一个变量的两个句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30560765/

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