在keil uv2中出现‘P1’:not in formal parameter list啥意思?该怎么改?
3个回答
展开全部
函数定义有两种方法,一种是标准方法,或者称做正规(formal)方法。就是常见的:
程序代码:
int f(int a, int b)
{ /* ... */ }
还有一种是为了兼容老式写法,而留下的:
程序代码:
int f(a, b)
int a, b;
{ /* ... */ }
你写的那个,编译器一定没看见用于开始定义的 {
所以就觉得你后面写的那一大堆都是老式参数列表。所以给了警告,警告的内容是not in formal parameter list (不是正规参数列表),这种写法现在已经极力反对了。
以上见于大神pangding的回答。
你检查一下函数定义后,{}是否存在
程序代码:
int f(int a, int b)
{ /* ... */ }
还有一种是为了兼容老式写法,而留下的:
程序代码:
int f(a, b)
int a, b;
{ /* ... */ }
你写的那个,编译器一定没看见用于开始定义的 {
所以就觉得你后面写的那一大堆都是老式参数列表。所以给了警告,警告的内容是not in formal parameter list (不是正规参数列表),这种写法现在已经极力反对了。
以上见于大神pangding的回答。
你检查一下函数定义后,{}是否存在
展开全部
你将错误信息写全才知道具体错在什么地方。这意思是:P1不在形式参数列表里面。
仔细检查一下程序,看看参数或函数申明时候,是不是漏掉了分号。
仔细检查一下程序,看看参数或函数申明时候,是不是漏掉了分号。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
P1不是规范的参数。
你是不是把P1作为函数的参数进行传递了。
你是不是把P1作为函数的参数进行传递了。
追问
我调用了reg52.h文件,在里面已经定义了P1,(sfr P1 = 0x90;)然后我用的语句是:P1=0xfe;就出错了
追答
只有这一个错误吗?前面是否还有其它错误?怀疑这是一个由前面错误导致的衍生错误。
把详细的出错提示按顺序贴出来。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询