我正在尝试为Crazyradio PA编译固件(但问题并非特定于此),我在其中添加了一个我需要的Nordic Semiconductor SDK库。
这个库最初是在KeilμVisionIDE下编译的,所以我自然地改变了代码中的所有内容,以便它可以在没有太多麻烦的情况下使用SDCC,但简单的指针定义让我苦苦挣扎。 SDCC编译器给我这个错误:
syntax error: token -> 'unsigned' ; column 10
这对应于代码中的这一行:
unsigned char * buf = (unsigned char *)pbuf;
pbuf是一个unsigned char指针,作为函数的一个参数传递,其中所有这些代码都是。
我尝试了以下操作,但未成功:
问题仍然存在(当然数据类型的差异也会发生变化)。解决方案可能很简单,但我的想法很简短,我只是一个对SDCC经验不足的实习生,所以我希望你会放纵。
再次感谢,请教我任何我做错的事情! :)
答案 0 :(得分:3)
检查SDCC documentation是否符合标准 - 它在所有模式中都有一些非常严重的偏差 - 特别是在3.1.3节中:
您的声明遵循同一范围块内的非声明。将所有声明移到scope-block的顶部或启动一个新的scope-block:
memtype = *(unsigned char*)(&pbuf);
// Start scope block for buf scope...
{
unsigned char * buf = (unsigned char *)pbuf;
// buf accessible on this scope only
...
}