gpt4 book ai didi

c - 如何将 float 数组传递给以 unsigned char 指针为参数的函数?

转载 作者:太空宇宙 更新时间:2023-11-03 23:49:25 25 4
gpt4 key购买 nike

一些背景信息;我必须连接一个具有 I2C 接口(interface)的 EEprom。我想在内存中保存一个 float 数组并读回。我想尽快完成。目前我有以下解决方案,效果很好。

float a[5];
unsigned char* p = (unsigned char *)a;
for ( i = 2; i < 22; i++)
{
data [ i ] = p [ i -2 ];
}

twi_master_trans(
if ( twi_master_trans ( EEprom_address , data , 22 ,NULL , 0) == false )
{
put_falsh_string("TWI major error1 ");
}

我将每个元素指向内存中的另一个位置。为什么不直接给出我的主数组的起点。我认为应该这样做:

twi_master_trans ( EEprom_address  , (unsigned char *)a, 22 ,NULL , 0)

我不明白为什么它不起作用。你能解释一下为什么吗?或者我不明白什么?

这是 twi_master_trans 的定义:

   bool twi_master_trans(
unsigned char slave_addr,
unsigned char *tx_data,
unsigned char tx_count,
unsigned char *rx_data,
unsigned char rx_count)

我知道我的问题不是很清楚,但我无法解释得更好。但我试一试。

函数的参数是指向 unsigned char 的指针,我有一个必须发送到那里的 float 数组。指向 float 组中起始字节的指针应该是我们传递给函数的内容。

谢谢你,我是菜鸟,抱歉,如果这是一个愚蠢的问题。

最佳答案

在第一个片段中, float 据从 char 数组的字节 2 开始。在第二个片段中,它从字节 0 开始。

看起来缺少的两个字节是一个有效而另一个无效的关键。

关于c - 如何将 float 数组传递给以 unsigned char 指针为参数的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24474531/

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