c语言: 错误:只允许在 C99 模式下使用‘for’循环初始化声明 用gcc编译出现
在gcc编译中如果使用
for(int i=0;i<n;++i){}会提示错误
错误:只允许在 C99 模式下使用‘for’循环初始化声明 用gcc编译出现
这是编译器自身的问题了 你可以换编译器
for(int i=0;i<100;i++)
与
int i;
for(i=0;i<100;i++)
就 i 作用域这一丁点小差别 换一种写法而已 这不是重点
重点是思维 数据结构
学程序没必要在c99这种小节上花功夫
当然也有解决方法,如下
错误处理:
C99 允许在for语句的 “表达式1 ”中定义并初始变量, gcc4 编译c语言的默认标准是C89, 编译C99程序需加参数 “–-std=c99” ;使用
gcc Program12.1.c -o Program12.1 --std=c99就解决了。
下面了解一下
1) 最初的 ANSI C 标准 (X3.159-1989) 在 1989 年被批准,并于 1990 年发布。稍后这个标准被接受为 ISO 标准 (ISO/IEC 9899:1990) 。虽然 ISO 标准将 ANSI 标准的某些章节重新编号并变为条款,但是两者实际上并无区别。不论是 ANSI 标准还是 ISO 标准,通常都称之为 C89 ,偶尔也因为发布日期而被叫做 C90 。 ANSI 标准 ( 非 ISO 标准 ) 同时附带了 rationale 文档。可以使用 -ansi , -std=c89 或 -std=iso9899:1990 选项指定 GCC 使用 C89 标准;可以使用 -pedantic 选项来得到所有的诊断信息( 或者使用 -pedantic-errors 选项以使 wangning 变为 error) 。PS:pedantic adj. 1. 卖弄学问的 2. 学究式的,迂腐的
2) 新的 ISO C 标准是 1999 年发布的 ISO/IEC 9899:1999 ,通常称之为 C99 。 GCC 目前不完整的支持这个版本。详情请参考 http://gcc.gnu.org/gcc-4.4/c99status.html 。为了指定 GCC 使用这个版本的 C 标准,需要 -std=c99 或 -std=iso9899:1999 选项。
3) 默认情况下, GCC 提供了一些 C 语言的扩展,极少的几处会与 C 标准冲突。关于这些冲突请参考 “ C 语言家族的扩展 ” 一节。使用上述的 -std 选项将会关闭这些有冲突的扩展。你也可以显式的使用选项 -std=gnu89 ( 对应 C89 的 GNU 扩展 ) 或 -std=gnu99 ( 对应 C99 的 GNU 扩展 ) 来选择对应版本的扩展功能。如果没有给出 C 语言 “ 方言 ” 选项,将默认的使用 -std=gnu89 ;若要使用C99的特性要设置-std=gnu9x。
c语言: 错误:只允许在 C99 模式下使用‘for’循环初始化声明 用gcc编译出现的更多相关文章
- Spark- Spark Yarn模式下跑yarn-client无法初始化SparkConext,Over usage of virtual memory
在spark yarn模式下跑yarn-client时出现无法初始化SparkContext错误. // :: INFO mapreduce.Job: Task Id : attempt_142829 ...
- C语言写了一个socket client端,适合windows和linux,用GCC编译运行通过
////////////////////////////////////////////////////////////////////////////////* gcc -Wall -o c1 c1 ...
- C语言写了一个socket server端,适合windows和linux,用GCC编译运行通过
////////////////////////////////////////////////////////////////////////////////* gcc -Wall -o s1 s1 ...
- 我写的一个Qt 显示二维码( QR Code)的控件(可以去掉对 libpthread 的依赖,而且编译出的库文件可以在 vc2010 的release 模式下使用)
最近一个项目需要显示二维码,所以花了点时间(只用了一个晚上,写的很不完善),写了个显示二维码的控件.当然这个控件用到了些开源的代码,比如qrencode,所以我也打算把我的代码开源. 我的代码参考了 ...
- 我理解的epoll(三)多线程模式下的ET
ET模式下,需要循环从缓存中读取,直到返回EAGAIN没有数据可读后,一个被通知的事件才算结束.如果还读取过程中,同一个连接又有新的事件到来,触发其他线程处理同一个socket,就乱了.EPOLL_O ...
- HTTP 错误 500.23 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置。
检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(非简单设置为[经典]模式). - CatcherX 2014-03-11 11:03 27628人阅读 评论(2) 收藏 举报 分类 ...
- [转贴]从零开始学C++之异常(一):C语言错误处理方法、C++异常处理方法(throw, try, catch)简介
一.C语言错误处理方法 1.返回值(if … else语句判断错误) 2.errno(linux 系统调用) 3.goto语句(函数内局部跳转) 4.setjmp.longjmp(Do not use ...
- 从零开始学C++之异常(一):C语言错误处理方法、C++异常处理方法(throw, try, catch)简介
一.C语言错误处理方法 1.返回值(if … else语句判断错误) 2.errno(linux 系统调用) 3.goto语句(函数内局部跳转) 4.setjmp.longjmp(Do not use ...
- C语言错误处理方法、C++异常处理方法(throw, try, catch)简介
一.C语言错误处理方法 1.返回值(if … else语句判断错误) 2.errno(linux 系统调用) 3.goto语句(函数内局部跳转) 4.setjmp.longjmp(Do not use ...
随机推荐
- 一道算法题,引出collections.Counter的特殊用法
题目描述: 题目编号:1002. 查找常用字符 给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表.例如,如果一个字符在每个字符串中出现 3 次, ...
- 手把手教你用 Spring Boot搭建一个在线文件预览系统!支持ppt、doc等多种类型文件预览
昨晚搭建环境都花了好一会时间,主要在浪费在了安装 openoffice 这个依赖环境上(Mac 需要手动安装). 然后,又一步一步功能演示,记录,调试项目,并且简单研究了一下核心代码之后才把这篇文章写 ...
- MeteoInfoLab脚本示例:subplot
subplot命令可以自动等间距分配多个坐标系(Axes),命令中有三个参数,前两个定义了行数和列数,第三个指定了当前的坐标系(Axes),绘图命令是作用在当前坐标系中的. 脚本程序: def f(t ...
- selenium 浏览器最大化
from time import sleep from selenium import webdriver from selenium.webdriver.chrome.options import ...
- .net core迁移实践:项目文件csproj的转换
随着net core的不断更新和生产可用,越来越多的人把现有的应用迁移和部署到net core平台.本文将分享迁移过程中的一个环节,给大家做一下参考. 背景说明 先来介绍一下什么是SDK样式的文件结构 ...
- vue知识点10
今天彻底掌握了如下: 1.解决回调地狱三种方案 callback async await Promise 2.中间件(middleware) express.static ...
- Unity控制角色移动
Copy代码前的准备工作 整体结构 建立个空对象命名随意,主要是为了:角色掉出地图时,可以回到空对象的位置 在建立个空对象命名为Player,放到PlayResurrectionPoints子级下,并 ...
- javaSE、javaEE、Android知识点总结
曾今上学时候的一些学习总结,如有错误请大家指出,共同学习. 1. 什么是WebView? WebView是一个使用WebKit引擎的浏览器组件,用来加载网页. 2. WebView中加载网页的两种方式 ...
- 在centOS上安装oracle出现java.lang.NoClassDefFoundError问题及解决方法
问题一:CentOS6.5 静默安装Oracle 11G过程中提示:Exception in thread "main" java.lang.NoClassDefFoundErro ...
- Bitmap缩放(三)
质量压缩 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle ...