由于该行打算将指针增加0x200(指向下一段),因此我收到该编译错误
Flash_ptr = Flash_ptr + (unsigned char *) 0x200;
Run Code Online (Sandbox Code Playgroud)
我已经看到了,但是我没有使用任何非法符号!
PS指针的初始化:
unsigned char * Flash_ptr = (unsigned char *) 0x20000;
Run Code Online (Sandbox Code Playgroud)
您不能添加两个指针。您可以向指针添加整数,也可以减去两个指针以获得整数差,但是添加两个指针毫无意义。因此,要解决您的问题,您只需要删除演员表:
Flash_ptr = Flash_ptr + 0x200;
Run Code Online (Sandbox Code Playgroud)
这个增量Flash_ptr为0x200个元素,但是由于Flash_ptr是类型的,unsigned char *因此它只能转换为0x200 个字节的增量。
为了使这部分成为循环并检查上限,您可以执行以下操作:
while (Flash_ptr < (unsigned char *)0x50000) // loop until Flash_ptr >= 0x50000
{
// ... do something with Flash_ptr ...
Flash_ptr += 0x200;
}
Run Code Online (Sandbox Code Playgroud)