gpt4 book ai didi

c - 指针定义上的语法错误似乎有效(来自工作库)SDCC

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

我正在尝试为 Crazyradio PA 编译固件(但问题并非特定于此),其中我添加了 Nordic Semiconductor 的 SDK 所需的库。

该库最初是要在 Keil µVision IDE 下编译的,所以我自然地更改了代码中的所有内容,以便它可以轻松地与 SDCC 一起使用,但简单的指针定义让我很挣扎。 SDCC 编译器给我这个错误:

syntax error: token -> 'unsigned' ; column 10

对应代码中的这一行:

unsigned char * buf = (unsigned char *)pbuf;

pbuf 是一个无符号字符指针,作为所有这些代码所在的函数的参数传递。

我尝试了以下方法,但没有成功:

  • 更改 buf 的数据类型(更改为任何类型,只是为了看看)
  • 通过注释掉前后行来隔离问题
  • 分配一个简单值而不是 (unsigned char *)pbuf

问题仍然是一样的(数据类型的差异当然也会改变)。解决方案可能很简单,但我的想法还不够,而且我只是一个对 SDCC 经验很少的实习生,所以希望您能宽容。

再次感谢,请告诉我我做错了什么! :)

最佳答案

检查SDCC documentation对于标准合规性 - 它在所有模式中都有一些相当严重的偏差 - 特别是在第 3.1.3 节中:

enter image description here

您的声明遵循同一范围 block 内的非声明。将所有声明移至作用域 block 的顶部或开始一个新的作用域 block :

memtype = *(unsigned char*)(&pbuf);

// Start scope block for buf scope...
{
unsigned char * buf = (unsigned char *)pbuf;

// buf accessible on this scope only
...

}

关于c - 指针定义上的语法错误似乎有效(来自工作库)SDCC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48112078/

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