• 我知道哪里有问题了浪费各位时间了这个问题不用再看啦


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 xy_D_ssunny 2024-04-08 19:21 采纳率: 75% 浏览 4 首页/ 编程语言 / 我知道哪里有问题了浪费各位时间了这个问题不用再看啦 c语言单片机51单片机 51单片机编lcd1602后面编写的函数里使用前面编写的函数应该不用声明吧?我知道哪里有问题了浪费各位时间了这个问题不用再看啦 报错显示“requires ANSI-style prototype” 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    2条回答 默认 最新

    • Kwan的解忧杂货铺 Java领域优质创作者 2024-04-08 19:21
      关注

      晚上好🌙🌙🌙
      本答案参考ChatGPT-3.5

      关于Keil51单片机编译报错"requires ANSI-style prototype",其中ANSI是C语言的标准化组织,编译器需要函数的定义来确定其返回类型和参数列表,因此需要函数原型。

      解决方案:

      1.在代码的开头部分加入包含头文件的语句,例如#include

      2.在使用函数前声明函数原型,即在函数使用前加上函数的定义,格式如下:

      返回值类型 函数名(参数类型1,参数类型2,...);

      例如:

      void func(int a, float b);

      在声明时不需要写出参数变量名,只需要写出参数类型即可。

      3.尽量使用ANSI C函数原型,即在函数参数列表中明确指明每个参数的数据类型,例如:

      void func(int a, float b);

      而不是:

      void func(a, b) int a; float b; { ... }

      这种方式在早期的C语言编译器中较为常见,但现代编译器已不再支持。

      修改后的代码:

      在前面编写的函数前加上函数原型,例如:

      void lcd_init(); void lcd_gotoxy(unsigned char x, unsigned char y);

      然后在后面编写的函数中直接调用不需要再次声明即可。

      参考资料:

      1.https://blog.csdn.net/lukdinger/article/details/10097384

      2.https://blog.csdn.net/aylass/article/details/53866416

      评论 编辑记录
    • GISer Liu 2024-04-08 19:29
      关注

      该回答引用自GPT-3.5,由博主GISer Liu编写:

      根据你的描述,报错显示"requires ANSI-style prototype",这是因为在调用函数时,编译器要求使用 ANSI
      样式的原型声明。ANSI 样式的原型声明要求在调用函数之前提供函数的原型声明或函数定义。
      解决这个问题的方法是在使用函数之前,要么提供函数的原型声明,要么直接定义函数。如果函数定义在调用函数之后,可以将函数定义提前,或者在调用函数之前提供函数的原型声明。以下是解决方案的示例:
      假设你有一个名为 lcd_init() 的函数,而你在此函数后面调用了另一个函数 ``` lcd_write()

      cCopy code
      

      // 原型声明 lcd_init()
      void lcd_init();
      // 原型声明 lcd_write()
      void lcd_write();
      // lcd_init 函数定义
      void lcd_init() {
      // 函数实现
      }
      // lcd_write 函数定义
      void lcd_write() {
      // 函数实现
      }
      // 在主函数中调用 lcd_init() 和 lcd_write()
      int main() {
      lcd_init();
      lcd_write();
      return 0;
      }

      这样做就能避免 "requires ANSI-style prototype" 的报错了。因为在调用 lcd_write() ```
      函数之前提供了函数的原型声明。
      请注意,这只是一个示例。根据你的实际代码,你可能需要在适当的地方提供正确的函数原型声明或者函数定义。

      如果该回答解决了您的问题,请采纳!如果没有,请私信联系或评论您的疑惑

      展开全部

      评论
    编辑
    预览

    报告相同问题?

  • 相关阅读:
    C语言结课实战项目_贪吃蛇小游戏
    AR人体姿态识别,实现无边界的人机交互
    (附源码)php企业招聘网站 毕业设计 222219
    react仿照antd progress实现可自定义颜色的直角矩形进度条
    A/B 测试:Python 分步指南
    java-php-python-springboot网上教学系统计算机毕业设计
    STL-list
    信号类型(雷达)——脉冲雷达(四)
    如何在 Chrome 中设置HTTP服务器?
    Win11搭建 Elasticsearch 7 集群(一)
  • 原文地址:https://ask.csdn.net/questions/8085249