热门标签 | 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收录,从而在全球范围内得到广泛应用。


推荐阅读
  • 俗话说得好,“工欲善其事,必先利其器”。这句话不仅强调了工具的重要性,也提醒我们在任何项目开始前,准备合适的工具至关重要。本文将介绍几款C语言编程中常用的工具,帮助初学者更好地选择适合自己学习和工作的编程环境。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细介绍了C语言中的基本数据类型,包括整型、浮点型、字符型及其各自的子类型,并探讨了这些类型在不同编译环境下的表现。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 解读MySQL查询执行计划的详细指南
    本文旨在帮助开发者和数据库管理员深入了解如何解读MySQL查询执行计划。通过详细的解析,您将掌握优化查询性能的关键技巧,了解各种访问类型和额外信息的含义。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • Python入门:第一天准备与安装
    本文详细介绍了Python编程语言的基础知识和安装步骤,帮助初学者快速上手。涵盖Python的特点、应用场景以及Windows环境下Python和PyCharm的安装方法。 ... [详细]
  • 解析SQL查询结果的排序问题及其解决方案
    本文探讨了为什么某些SQL查询返回的数据集未能按预期顺序排列,并提供了详细的解决方案,帮助开发者理解并解决这一常见问题。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • 云屏系统基于嵌入式微系统msOS,旨在解决当前嵌入式彩屏GUI编程中硬件要求高、软件开发复杂、界面效果不佳等问题。该系统通过结合MCU和Android技术,利用Html5+JavaScript实现高效、易用的图形用户界面开发,使嵌入式开发人员能够专注于业务逻辑。 ... [详细]
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
  • 序列化与反序列化是数据处理中的重要技术,特别是在网络通信和数据存储中。它们允许将复杂的数据结构转换为可传输或存储的格式,再从这些格式恢复原始数据。本文探讨了序列化与反序列化的基本概念,以及它们在不同协议模型中的角色。 ... [详细]
  • C语言实现推箱子游戏的完整代码
    本文详细介绍了如何使用C语言在Linux环境下实现一个简单的推箱子游戏,包括游戏的基本规则、地图设计及代码实现。适合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社区 版权所有