ISO C90 forbids mixed declarations and code 警告

编译的时候经常会遇到   ISO C90 forbids mixed declarations and code 警告

百度了一下,知道是如下原因 :

变量定义之前任何一条非变量定义的语句(注意:语句是会带分号的)都会引起这个警告!

解决方法:

将非变量的定义移到变量定义之后 即可

在内核中还需要将   printk的打印放在变量定义之后

时间: 2024-12-25 18:07:39

ISO C90 forbids mixed declarations and code 警告的相关文章

warning:ISO C90 forbids mixed declarations and code

变量定义之前不论什么一条非变量定义的语句(重视:语句是会带分号的)都会引起这个警告! 将非变量的定义移到变量定义之后 就可以,也就是变量的声明 必须在运行语句之前.

用GPIO_WriteBit时产生enumerated type mixed with another type警告

在keil里面写STM32程序,这样写GPIO_WriteBit(GPIOC,GPIO_Pin_9,1),编译的时候就报enumerated type mixed with another type警告,  这说明数据类型混用了,进入GPIO_WriteBit函数发现其原型是void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal)这样的 ,BitAction这个是枚举,所以要类型转换 即把GPIO_W

ISO C++ forbids comparison between pointer and integer

在g++下编译出现ISO C++ forbids comparison between pointer and integer错误 经过检查发现错误如下: while (cin.get() !="\n") continue; 将其修改为: while (cin.get() !='\n') continue; 在ISO C++中,"\n"常量字符串比较时是使用字符串的地址,所以为char *: '\n'字符,是转换为int常量的,可以与cin.get()比较 所以出现

ISO C++ forbids declaration of * with no type

error: ISO C++ forbids declaration of 'XXXX' with no type   出现这个错误,一般是由于两个CPP相互都相互包含了对方的头文件造成的,比如: 当mainwindow.cpp.configdialog.cpp两个文件,分别包含了对方的头文件,并且分别又在自己的类中生命了对象,即: mainwindow.cpp #include "configdialog.h" class MainWindow { ConfigDialog *con

warning: ISO C++ forbids converting a string constant to 'char*'

第1种字符串赋值方式: char * fileName="./2017-09-02-10-34-10.xml";//这一种字符串赋值方式已经被ISO禁止了 第2种字符串赋值方式: char str[] ="./2017-09-02-10-34-10.xml"; char *fileName=str; 第3种字符串赋值方式: char fileName[] ={"./2017-09-02-10-34-10.xml"};//有无大括号都可以 warn

warning: this decimal constant is unsigned only in ISO C90问题的处理及理解

参考:https://blog.csdn.net/duguduchong/article/details/7709482 https://bbs.csdn.net/topics/391892978?page=1 问题描述:直接输出一个大整数常量时会出现改警告.如下: 1 #include <iostream> 2 #include <stdlib.h> 3 4 int main() { 5 printf("%d\n",2147483648); //int型取值范

[Error] ISO C++ forbids comparison between pointer and integer

错误代码: if(a[i]=="G"&&b[i]!="C") return false; 改正后的代码: if(a[i]=='G'&&b[i]!='C') return false; 错误原因:两种不同类型的数据不能做比较,a[i]表示的是一个字符,"C"表示的是一个字符串的首地址,所以应该把"C"改为'C' 原文地址:https://www.cnblogs.com/chay/p/1024035

请善用工具审核您的内核代码:)

在写内核代码时.代码风格(coding style)是一个非常重要的部分,否则内核代码将变的混乱不堪. 那么什么样的代码算美丽的代码?什么样的代码符合c99这种标准?此外,程序写完之后,有什么工具可以帮我们检查代码有没有指针错误?客官且随我看看这三个工具: 1. 代码风格篇 想开发一个内核程序?你的电脑有内核源代码么?无论是以前用来编译内核或者你自己查阅资料,假设您的电脑上有内核源代码,好的,本节将介绍一个非常多人都不知道的强大的工具 -- checkpatch. So, where is it

net-snmp agent开发(用net-snmp扩展MIB库)

注:本文经过http://blog.csdn.net/hepeng597/article/details/8782868原文以及网上资料进行归纳整理 用net-snmp扩展MIB库,实现方法可归结为四种: 1)一是静态库方式,通过修改配置头文件,在相应地方包含新引入的mib模块的.c和.h文件,然后重新编译库文件和扩展代码:这种方式不够灵活,每次修改扩展的MIB后,都需要重新编译snmpd和扩展的代码,再重新安装snmpd到系统中. 2)二是编译动态共享库,只需把新引入的MIB模块的.c和.h文