热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C语言标准及其GCC编译器版本

编程语言的发展离不开持续的维护和更新。本文将探讨C语言的标准演变以及GCC编译器如何支持这些标准,确保其与时俱进,满足现代开发需求。
C语言标准的演进

随着技术的进步,任何编程语言都需要不断更新以保持其竞争力。C语言自诞生以来经历了多个版本的迭代,包括C89(又称C90)、C94(C89的修订版)、C99、C11、C17,以及正在开发中的C2X。通常,C90、C99、C11和C17被视为第一代到第四代版本。

标准 C 的历史


  • 1983年:ANSI成立X3J11委员会,负责制定C语言标准
  • 1988年:《The C Programming Language》第二版发布
  • 1989年:ANSI正式发布C89标准

  • 1990年:ISO/IEC 9899-1990接纳了ANSI C标准
  • 1995年:ISO/IEC 9899 AM1(修正案1)发布

  1. 1999年:ISO/IEC 9899:1999即C99标准发布

  • 2011年:ISO/IEC 9899:2011即C11标准发布
  • 2018年:ISO/IEC 9899:2018即C17标准发布

 

GCC编译器对C语言标准的支持

读者可能会好奇,GCC编译器具体使用哪个C语言标准?不同版本的GCC编译器默认使用的标准各不相同。幸运的是,开发者可以通过命令行选项手动指定GCC编译器使用的标准。例如,在编译C程序时,可以使用-std选项来选择特定的C语言标准。

国际标准化组织

ISO

国际标准化组织(ISO)是全球最大的国际标准化机构,旨在促进世界各国在经济、科学、技术和知识等领域的合作。ISO通过制定国际标准,协调各国间的标准化工作,推动信息交流和技术合作。

ISO成员分为团体成员和通信成员。团体成员代表各自国家参与ISO的技术活动,而通信成员则主要关注ISO的工作进展。

IEC

国际电工委员会(IEC)成立于1906年,总部设在瑞士日内瓦,负责电气和电子工程领域的国际标准化工作。IEC致力于促进相关领域的国际合作,涵盖从传统电力设备到现代信息技术等多个方面。

ITU

国际电信联盟(ITU)成立于1865年,总部位于瑞士日内瓦,负责全球电信标准化工作。ITU下设三个部门,分别负责标准化、无线电通信和电信发展,确保全球电信系统的互联互通。

ANSI

美国国家标准协会(ANSI)是IEC和ISO的重要成员,积极参与国际标准的制定和推广。

IEEE

电气与电子工程师协会(IEEE)是全球最大的专业学术组织之一,涵盖电气、电子、计算机等多个领域,制定了一系列广泛认可的标准。

ECMA

欧洲计算机制造商协会(ECMA)成立于1961年,致力于制定统一的计算机操作格式标准,如ECMAScript规范。

每个组织都有自己的标准体系,部分标准被ISO/IEC收录,从而在全球范围内得到广泛应用。


推荐阅读
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • Google最新推出的嵌入AI技术的便携式相机Clips现已上架,旨在通过人工智能技术自动捕捉用户生活中值得纪念的时刻,帮助人们减少照片数量过多的问题。 ... [详细]
  • 本文详细介绍了C语言的起源、发展及其标准化过程,涵盖了从早期的BCPL和B语言到现代C语言的演变,并探讨了其在操作系统和跨平台编程中的重要地位。 ... [详细]
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • 俗话说得好,“工欲善其事,必先利其器”。这句话不仅强调了工具的重要性,也提醒我们在任何项目开始前,准备合适的工具至关重要。本文将介绍几款C语言编程中常用的工具,帮助初学者更好地选择适合自己学习和工作的编程环境。 ... [详细]
  • C语言实现推箱子游戏的完整代码
    本文详细介绍了如何使用C语言在Linux环境下实现一个简单的推箱子游戏,包括游戏的基本规则、地图设计及代码实现。适合C语言初学者学习。 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 主板IO用W83627THG,用VC如何取得CPU温度,系统温度,CPU风扇转速,VBat的电压. ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 使用JS、HTML5和C3创建自定义弹出窗口
    本文介绍如何结合JavaScript、HTML5和C3.js来实现一个功能丰富的自定义弹出窗口。通过具体的代码示例,详细讲解了实现过程中的关键步骤和技术要点。 ... [详细]
  • 本文详细介绍了Java中实现异步调用的多种方式,包括线程创建、Future接口、CompletableFuture类以及Spring框架的@Async注解。通过代码示例和深入解析,帮助读者理解并掌握这些技术。 ... [详细]
  • 本文详细介绍了C语言中的基本数据类型,包括整型、浮点型、字符型及其各自的子类型,并探讨了这些类型在不同编译环境下的表现。 ... [详细]
author-avatar
DomincLiu
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有