找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 56083|回复: 23
收起左侧

error C267:: requires ANSI-style prototype这个是什么意思?

  [复制链接]
回帖奖励 20 黑币 回复本帖可获得 2 黑币奖励! 每人限 2 次
ID:741237 发表于 2020-4-29 22:01 | 显示全部楼层 |阅读模式
求助Keil编码错误
error C267: 'lcd_write_com': requires ANSI-style prototype



请问Keil软件出现这个错误什么意思啊?怎么改呢

回复

举报

ID:70069 发表于 2020-4-30 08:07 | 显示全部楼层
看一下lcd_write_com这个函数有没有声明,定义。
回复

举报

ID:267719 发表于 2020-4-30 08:40 | 显示全部楼层
你函数原型在调用函数之后。一种办法是你将lcd_write_com这个函数移动到你调用的函数之前,另一种办法就是在最前面声明或头文件声明。
回复

举报

ID:592807 发表于 2020-4-30 09:00 | 显示全部楼层
它说你的函数不标准,这的看原型和调用
回复

举报

ID:452950 发表于 2020-4-30 10:51 | 显示全部楼层
函数未定义或未声明调用
回复

举报

ID:234355 发表于 2020-4-30 11:17 | 显示全部楼层
先声明再使用
回复

举报

ID:741605 发表于 2020-4-30 12:05 | 显示全部楼层
在实现lcd_write_com这个函数的.c文件对应的.h文件加上函数声明,再在你调用的地方include这个.h文件,另外检查一下函数定义、声明、调用传参个数、类型是否一致。
回复

举报

ID:741548 发表于 2020-4-30 12:24 | 显示全部楼层
是不是没声明
回复

举报

ID:741674 发表于 2020-4-30 14:05 | 显示全部楼层
要把调用的子函数lcd_write_com放到main前面,或者在main前面先定义(声明)一下
回复

举报

ID:539117 发表于 2020-4-30 14:10 | 显示全部楼层
函数没有申明,如果申明了看看是不是参数问题,比如你调用时本来函数没有参数你给了参数
回复

举报

ID:920003 发表于 2021-5-15 10:28 来自触屏版 | 显示全部楼层
需要函数声明
回复

举报

ID:916624 发表于 2021-7-14 15:02 | 显示全部楼层
看看调用的函数名有没有打错
回复

举报

ID:81196 发表于 2021-7-15 13:54 | 显示全部楼层
先关键检查是否正确声明,如果还不行,那就是keil编码设置错误了
回复

举报

ID:974525 发表于 2021-12-20 16:53 | 显示全部楼层
是不是应当把错误代码帖出来 大家看看
回复

举报

ID:993066 发表于 2021-12-21 14:48 | 显示全部楼层
write_data()这个函数还没有声明过,你就直接调用了。   Keil采用的是C89标准,无声明无定义的函数会报错的。你应当:  将write_data()函数体挪动到所有调用它的函数之前(先让编译器看看:我有这个东西;之后再调用它,编译器自然就闭嘴了);  或者养成规范编程的习惯,在最前面放好每个函数的原型声明(告诉编译器:我会用到一个这样的函数,你别叽叽歪歪)

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

举报

ID:903924 发表于 2021-12-26 17:19 | 显示全部楼层
可能是说你的函数命名不符合规范,或者说头文件和define冲突之类的 也可能是代码位置的问题
回复

举报

ID:997569 发表于 2021-12-27 20:38 | 显示全部楼层
要先声明的呀
回复

举报

ID:987925 发表于 2022-2-20 10:16 | 显示全部楼层
虽然说是声明问题,但是有一种情况仍然会导致这个问题的出现
就是你一开始在打开这个文件(模块化编程)的时候,是打开其他文件夹里面的文件,然后在复制过来工程文件夹
此时在keil中修改的文件是另外文件夹的文件,而实际读取操作的文件是工程文件夹中未修改的文件
解决方法是copy修改完的文件到工程文件夹,然后再将该模块的文件删除并重新添加工程文件夹中的文件
回复

举报

ID:1037639 发表于 2022-8-17 13:48 | 显示全部楼层
函数未调用(定义)
回复

举报

ID:799053 发表于 2022-8-19 20:07 | 显示全部楼层
要么放在main前面,放在后面就要对函数声明,定义。
回复

举报

ID:372579 发表于 2022-8-20 21:56 | 显示全部楼层
函数未定义或未声明调用,或者放在main前面
回复

举报

ID:1106197 发表于 2024-12-10 21:17 | 显示全部楼层
发表于 2020-4-30 08:40
你函数原型在调用函数之后。一种办法是你将lcd_write_com这个函数移动到你调用的函数之前,另一种办法就是 ...

正解
回复

举报

ID:1139984 发表于 2024-12-16 16:26 | 显示全部楼层
这是由于函数原型声明的问题导致的编译错误
回复

举报

ID:1143646 发表于 2025-2-9 00:37 | 显示全部楼层
Chodimasker 发表于 2022-2-20 10:16
虽然说是声明问题,但是有一种情况仍然会导致这个问题的出现
就是你一开始在打开这个文件(模块化编程)的 ...

谢谢!我查了好久,发现是这个问题
回复

举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表