当前位置: 首页 > article >正文

C语言标准

1、概述

        C语言标准是由ANSI(美国国家标准协会)和ISO(国际标准化组织)共同制定的一种语言规范。标准经历过如下更新:

  • C89/C90标准
  • C99标准
  • C11标准
  • C17标准

2、C89/C90标准

(1)这是1989年正式发布的C语言标准,简称为C89或C90。这个标准定义了C语言的基本语法、数据类型、运算符、控制结构等核心特性。

3、C99标准

(1)在1999年,ISO对C语言进行了修订,发布了ISO9899:1999标准,简称为C99。这个标准增加了一些新的特性,例如支持长长整型(long long int)、无符号整数类型(unsigned int)、可变长度数组(VLA)等。同时,C99还强调了可移植性,要求编译器能够处理不同平台的差异。

4、C11标准

(1)C11标准:在2011年,ISO再次对C语言进行了修订,发布了ISO9899:2011标准,简称为C11。这个标准引入了一些新的特性,例如支持二进制字面量、线程局部存储(thread-local storage)、指定初始化器等。此外,C11还加强了对于并发编程的支持,提供了更好的线程同步机制。

5、C17标准

在2017年,ISO再次更新C语言标准,发布了ISO9899:2017标准,简称为C17。这个标准引入了一些新的特性,例如支持指定长度的数组、聚合类型(aggregate types)、通用初始化等。此外,C17还加强了对于嵌入式编程的支持,提供了更好的内存管理和异常处理机制。

6、总结

(1)需要注意的是,虽然C语言标准在不断更新,但是不同的编译器可能会有不同的支持程度和实现方式。因此,在实际开发中,需要参考具体的编译器文档和标准版本来使用合适的语言特性。

7、Keil中的C语言标准

(1)C89中,变量的定义必须放在作用域的开头,C99中,变量的定义可以放在任何地方。

(2)Keil中设置使用C99标准,如下图:

  • 勾选C99 Mode
  • 或者Misc Controls中添加--c99


http://www.kler.cn/a/145601.html

相关文章:

  • 从新手到高手的蜕变:MySQL 视图进阶全攻略
  • 运算放大器应用电路设计笔记(六)
  • 基于springboot社区医院管理系统
  • 【LeetCode 刷题】栈与队列-队列的应用
  • thinkphp8在使用apidoc时, 4层的接口会有问题 解决办法
  • 解决后端接口返回Long类型参数导致的精度丢失问题
  • TikTok 将开源“云中和”边缘加速器
  • 通过一个例子理解pytest的fixture的使用
  • npm配置最新淘宝镜像
  • 五大自动化测试的 Python 框架
  • centos 7.9 下利用miniconda里的pyinstaller打包python程序为二进制文件操作方法
  • 物联网AI 无线连接学习之蓝牙基础篇 协议的发展
  • 【ES6.0】- Promise对象
  • 打开CMD的六种方法,CMD快捷键,CMD命令大全及详解
  • 【自主探索】基于 frontier_exploration 的单个机器人自主探索建图
  • 乘法原理 LeetCode 828. 统计子串中的唯一字符
  • 顺序查找(线性查找),折半查找(二分或对分查找),分块查找(索引顺序查找)
  • QT基础开发笔记
  • 鸿蒙HarmonyOS 编辑器 下载 安装
  • vite-性能优化-构建优化-cnd加速优化
  • 学习Opencv(蝴蝶书/C++)——3. OpenCV的数据类型
  • 七、通过libfdk_aac编解码器实现aac音频和pcm的编解码
  • 4.整数输入,并输出变量类型【2023.11.26】
  • C++11
  • POJ 1795 DNA Laboratory 状态压缩DP(旅行商问题)
  • 《C++PrimePlus》第9章 内存模型和名称空间