当前位置: 技术问答>linux和unix
警告:ISO C90 不允许混合使用声明和代码
来源: 互联网 发布时间:2016-08-26
本文导语: unsigned long errnum; struct eddev_device *edp; struct task_struct *tsk = current; edp = (struct eddev_device *)file->private_data; DECLARE_WAITQUEUE(wait, tsk);---140 add_wait_queue(&edp->rwait, &wait); ... 使用这段代码时出了一个告警: 140: 警告:ISO...
unsigned long errnum;
struct eddev_device *edp;
struct task_struct *tsk = current;
edp = (struct eddev_device *)file->private_data;
DECLARE_WAITQUEUE(wait, tsk);---140
add_wait_queue(&edp->rwait, &wait);
...
使用这段代码时出了一个告警:
140: 警告:ISO C90 不允许混合使用声明和代码
不知什么原因导致这个警告
struct eddev_device *edp;
struct task_struct *tsk = current;
edp = (struct eddev_device *)file->private_data;
DECLARE_WAITQUEUE(wait, tsk);---140
add_wait_queue(&edp->rwait, &wait);
...
使用这段代码时出了一个告警:
140: 警告:ISO C90 不允许混合使用声明和代码
不知什么原因导致这个警告
|
DECLARE_WAITQUEUE(wait, tsk); ---140
这个宏是什么样子的?后面那个---140是啥?
这个宏是什么样子的?后面那个---140是啥?
|
说得简单一点
int main(void)
{
printf("hello worldn");
int i=0;
return i;
}
在c89/90 标准里,一个函数里变量的定义要放在代码段前面,所以会警告int i=0;不符标准
你把那个宏展开看看就知道了 使用gcc -I
可以无视这个警告
int main(void)
{
printf("hello worldn");
int i=0;
return i;
}
在c89/90 标准里,一个函数里变量的定义要放在代码段前面,所以会警告int i=0;不符标准
你把那个宏展开看看就知道了 使用gcc -I
可以无视这个警告
|
绝大多数警告可以忽略。
检查DECLARE_WAITQUEUE(wait, tsk)这个宏的定义。
检查DECLARE_WAITQUEUE(wait, tsk)这个宏的定义。
|
C90不允许混合使用声明和代码,C99可以。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。