在keil uv2中出现‘P1’:not in formal parameter list啥意思?该怎么改?

 我来答
ghost4063
2013-07-10 · TA获得超过6522个赞
知道大有可为答主
回答量:2940
采纳率:75%
帮助的人:2770万
展开全部
函数定义有两种方法,一种是标准方法,或者称做正规(formal)方法。就是常见的:

程序代码:
int f(int a, int b)
{ /* ... */ }

还有一种是为了兼容老式写法,而留下的:

程序代码:
int f(a, b)
int a, b;
{ /* ... */ }
你写的那个,编译器一定没看见用于开始定义的 {
所以就觉得你后面写的那一大堆都是老式参数列表。所以给了警告,警告的内容是not in formal parameter list (不是正规参数列表),这种写法现在已经极力反对了。

以上见于大神pangding的回答。
你检查一下函数定义后,{}是否存在
zhxiufan
2017-07-26 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38385
国家科技进步奖

向TA提问 私信TA
展开全部
你将错误信息写全才知道具体错在什么地方。这意思是:P1不在形式参数列表里面。
仔细检查一下程序,看看参数或函数申明时候,是不是漏掉了分号。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一剑出血
高粉答主

2013-07-09 · 醉心答题,欢迎关注
知道大有可为答主
回答量:5.7万
采纳率:78%
帮助的人:1.7亿
展开全部
P1不是规范的参数。
你是不是把P1作为函数的参数进行传递了。
追问
我调用了reg52.h文件,在里面已经定义了P1,(sfr P1    = 0x90;)然后我用的语句是:P1=0xfe;就出错了
追答
只有这一个错误吗?前面是否还有其它错误?怀疑这是一个由前面错误导致的衍生错误。
把详细的出错提示按顺序贴出来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式