error:#18:expexted a “)”

        前天写了几段代码,出现了error: #18:expexted a ")",当时我挺懵的,一直反复的检查了出错的地方,一直找不出来。 

         后面去百度查了一下,都是说在定义头文件时,宏定义#define语句最后不要加分号!去掉分号即可消除error

         但是经过排查,我的所有代码都没有这样的写法,说明错的不是这种情况。后来,我继续检查,发现了问题。

void SpiWritePage(unsigned char* buff,unsigned int addr,unsigned short len)
{
    unsigned i=0;
    SpiWriteEnalb();
    SpiWaitBusy();                      //等待空闲
    SPI_FLASH_CS=0;
    SPI_ReadWriteByte(Page_Program);
    
    SPI_ReadWriteByte(addr>>16);  //发送24位地址的最高8位
    SPI_ReadWriteByte(addr>>8);   //发送24位地址的中间8位
    SPI_ReadWriteByte(addr);      //发送24位地址的最低8位
    for(i=0;i<len;i++)
    {
        SPI_ReadWriteByte(*buff++);
    }
    SPI_FLASH_CS=1;                     //拉高片选 
    SpiWaitBusy();                      //等待空闲
    printf("写入成功!\r\n");
}
void SpiReadData(unsigned char* buff,unsigned int addr,unsigned short len)
{
    unsigned short i=0;
    SpiWaitBusy();
    SPI_FLASH_CS=0;//拉低片选 
    SPI_ReadWriteByte(Reader_Data);
    SPI_ReadWriteByte(addr>>16);
    SPI_ReadWriteByte(addr>>8);
    SPI_ReadWriteByte(addr);
    for(i=0;i<len;i++)
    {
       *buff++ =SPI_ReadWriteByte(0xff);//读取状态
        
    }
    SPI_FLASH_CS=1;//拉高片选
    SpiWaitBusy();
}

        由于我写的这两个函数,一个是读取寄存器的数据,一个是向寄存器写入参数,方法都差不多,函数里面调用函数一样,用的形参都一样,keil5就会给我报错。后面把函数的形参改为如下:

 这样就可以成功通过编译!!!程序也可以正常运行!!!

我用的是keil5 5.27.1.0版本。学识尚浅,如有不对的地方,还望各位海涵!!!同时欢迎大家在评论区留言。

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 这个错误提示是因为在代码中缺少了声明语句。在编写代码时,需要在使用变量或函数之前先进行声明,告诉编译器这些变量或函数的类型和名称。如果没有声明语句,编译器就无法识别这些标识符,从而导致错误。因此,需要检查代码中是否缺少了声明语句,并进行相应的补充。 ### 回答2: error是英文中表示错误或者问题的一种词汇。在计算机领域,error则指代着计算机系统或程序发生的错误或异常。计算机程序经常出现错误,有时甚至可能导致系统崩溃。在程序开发和调试过程中,发现和解决错误是一个非常重要的流程。 可以通过多种方式发生错误,例如语法错误、逻辑错误、内存错误等等。对于不同类型的错误,开发人员需要采取不同的解决策略。在早期的计算机编程中,错误处理通常是通过向终端打印错误消息来提醒用户程序出现了什么问题,并终止程序运行。 如今,计算机错误处理变得更加复杂和精细,常见的方法包括使用调试器来定位并修复错误、使用日志记录系统来记录错误、使用测试工具来确保程序正确性、加强代码审查活动等等。在软件的维护和升级过程中,错误处理依然是一个非常关键的部分。 也许可以说,error是计算机领域中最常见的词汇之一,没有哪个编程人员能够避免错误的发生。因此,正确处理错误、学习如何定位问题、以及熟练运用调试和测试工具是每一个程序开发人员必备的技能。为了使程序更加稳定和可靠,许多开发团队都会加强错误处理部分的培训和知识分享活动,以便在高度竞争的市场中获得更大的优势。 ### 回答3: Error是英语中的一个词语,通常翻译为“错误”、“故障”等。在计算机领域,Error是一个常见的术语,代表着计算机程序在执行时出现的错误。因此,Error通常是与程序或操作系统有关的问题,涉及到了数据处理、存储、通信等方面。 Error可以分为两种类型:软件Error和硬件Error。软件Error是指程序在运行过程中出现的问题,如输入错误、逻辑错误、编译错误等。而硬件Error则是指电脑硬件出现的问题,如CPU故障、硬盘故障、内存故障等。 Error的出现可能会导致程序无法正常执行,甚至导致系统崩溃。同时,Error也是程序开发人员所关注的问题之一,因为它会对程序的稳定性和可靠性造成影响。 为了避免Error的出现,程序员通常会进行错误的预防和处理。一般来说,预防Error的方法有以下几种:规范输入、检查边界、避免死循环、提高代码健壮性等。而当Error已经出现时,程序员需要寻找错误的根源,并进行调试和修复。 总之,Error是程序开发中不可避免的问题。程序员需要采取一系列措施来避免Error的出现,并及时处理已经出现的Error,从而确保程序的稳定性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浊酒一杯敬故里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值