gpt4 book ai didi

c - 在 C 中将多维数组复制到另一个时出现语法错误

转载 作者:行者123 更新时间:2023-12-01 23:15:12 26 4
gpt4 key购买 nike

我们正在对具有两个红外距离传感器的 ST269 微 Controller 进行编程。为了校准这些传感器,我们为每个传感器制作了一张表格,其中包含我们测量的距离以及从 ADC 获得的相应值。

现在我们想使用一个函数来近似计算两者之间的值。因此,我们定义了两个二维数组(每个传感器一个)作为全局变量。然后,在我们的函数中,我们希望将要使用的一个数组复制到一个工作数组并近似我们的值。

所以这是代码:

...

unsigned int ir_werte_re[][] = {
{8,553},
...
{83,133}
};

unsigned int ir_werte_li[][] = {
{8,566},
...
{83,147}
};

...

unsigned int geradenaproximation(unsigned int messwert, unsigned int seite)
{
unsigned int working_array[16][16];
unsigned int i = 0;

if (seite == 0) {
for (i = 0; i < sizeof(working_array); i++) {
working_array[i][0] = ir_werte_li[i][0];
i++;
}
}
else {
for (i = 0; i < sizeof(working_array); i++) {
working_array[i][0] = ir_werte_re[i][0];
i++;
}
}

i = 0;
unsigned int y1 = 0;
unsigned int x1 = 0;
...
}

此代码位于名为sensor.c 的文件中。我们没有在sensor.h 中编写有关全局数组的任何内容,不是吗?当然,sensor.h 包含在我们的 main.c 中,并在那里调用该函数。

我们还尝试通过复制数组

memcpy(工作数组, ir_werte_li, sizeof(工作数组));

我们通过各种方式做到这一点,我们得到了

syntax error near unsigned

在我们声明的行

unsigned int y1 = 0;

而且我很确定这一行没有语法错误:)

我上次用 C 编写代码已经是几年前的事了,所以我不确定我们尝试这样做的方式是否良好。也许我们可以通过使用指针来解决这个问题,而不是真正复制数组或其他东西。所以请帮助我,我将非常感谢您对此的贡献。

最佳答案

在 C(C99 之前)中,所有变量定义必须出现在当前 block 作用域的顶部。

关于c - 在 C 中将多维数组复制到另一个时出现语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2920278/

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