意思:C90 标准禁止混合声明;
一般出现此错误的原因是:声明写在了函数调用命令的后面,改过来就没事;
但在liunx内核编程中,即使所写命令中涉及的变量已经在模块入口函数前声明过,也不能将后续其它变量的声明写在后面;
简单的说就是要书写规范,变量的声明在模块中都最好集中写在模块的最开始的地方;
static int val = 2014;
static char * str1 = "Study for yourself!\n";
static int __init ledtest_init(void){
printk(KERN_INFO "Hello,Farsight!\n");
printk(KERN_INFO "Say in %d: %s",val, str1); //将这两行转移但声明的后面便可消除警告。
int ret;
dev_t devno;
struct resource *gpg3_res;
}
这样做同样会出现上述警告。