keil运行程序总是报错

为什么用keil运行这个程序时总是报这些符号错误,我试了很多次没感觉错

img

5行的的数组定义没有加分号。写程序别凭感觉啊。
另外p0 p1这样的定义很不好,容易和P0 P1混淆

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/333525
  • 你也可以参考下这篇文章:关于Keil的几个错误的分析
  • 除此之外, 这篇博客: 通过 地址直接调用函数中的 用Keil仿真调试查看变量内存地址被篡改的方法 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    https://blog.csdn.net/mealu00/article/details/103461857

     

    程序编译后    可以在 .map 文件中找到指定函数的地址

    可以地址就是函数指针,可以通过 改函数指针直接调用函数 

    例如

     

    uint8_t test_fun(uint8_t a,uint8_t b)
    {
        uint8_t ret = a + b;
        return ret;
    }
     

    typedef  uint8_t (*TestFunPType)(uint8_t,uint8_t);                //定义一个函数类型的参数.   
    TestFunPType pTestFun = TestFunPType (函数地址);

    pTestFun(2,3) = 5

     


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^