表达式必须具有整数类型

Oge*_*Gee 7 c pointers

由于该行打算将指针增加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)

Pau*_*l R 6

您不能添加两个指针。您可以向指针添加整数,也可以减去两个指针以获得整数差,但是添加两个指针毫无意义。因此,要解决您的问题,您只需要删除演员表:

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)