..\my\FFT\fft_calculate.c(16): error: #142: expression must have pointer-to-object type
时间: 2023-12-05 17:03:03 浏览: 39
这个错误在代码第16行报告了一个问题,错误的提示是“expression must have pointer-to-object type”,意思是表达式必须具有指向对象的指针类型。
根据你提供的代码,问题出在以下两行:
```c
cr4_fft_256_stm32(OutBufArray, InBufArray, NPT);
```
这里的`OutBufArray`和`InBufArray`是数组名,它们并不是指针类型。而`cr4_fft_256_stm32`函数可能期望接收指向数组的指针作为参数。
为了解决这个问题,你可以将数组名作为参数传递给函数时,取地址操作符`&`来获取数组的指针,修改代码如下:
```c
cr4_fft_256_stm32(OutBufArray0, InBufArray0, NPT);
```
请注意,我将`OutBufArray`和`InBufArray`分别修改为`OutBufArray0`和`InBufArray0`,以匹配你在代码开头定义的数组名称。确保在其他地方也相应地修改了数组名称。
这样修改后,应该能够解决这个编译错误。如果还有其他问题,请提供更多的信息以便我能够帮助你。
相关问题
..\my\FFT\fft_calculate.c(17): error: #142: expression must have pointer-to-object type
根据错误信息,我注意到错误出现在第17行。这个错误是由于你在调用`cr4_fft_256_stm32`函数时,传递了一个无效的参数。
根据你的代码,`OutBufArray0`和`InBufArray0`都是数组,它们的类型是`long`。然而,`cr4_fft_256_stm32`函数可能需要接受指向这些数组的指针作为参数,而不是数组本身。
所以,你需要将数组名作为参数传递给函数时,使用数组名本身会被解释为指向第一个元素的指针。因此,你可以将调用代码修改为如下所示:
```c
cr4_fft_256_stm32(OutBufArray0, &InBufArray0[0], NPT);
```
同样地,如果你想调用`cr4_fft_256_stm32`函数来处理`InBufArray1`,你可以使用类似的方式传递参数:
```c
cr4_fft_256_stm32(OutBufArray1, &InBufArray1[0], NPT);
```
这样修改后,应该能够解决这个问题。如果还有其他问题,请提供更多信息以便我能够帮助你。
from ..dct_func import FFT_for_Period ImportError: attempted relative import with no known parent package
这个错误通常是由于相对导入时没有正确设置包路径导致的。您可以尝试将导入语句更改为绝对导入语句,或者在包的__init__.py文件中添加必要的路径设置。
例如,如果您的包结构如下所示:
```
my_package/
__init__.py
dct_func/
__init__.py
FFT_for_Period.py
other_module.py
```
则您可以在other_module.py中使用以下导入语句:
```python
from my_package.dct_func import FFT_for_Period
```