C 语言标准(c语言标准输出函数)

yumo66610个月前 (05-08)技术文章63

历史

1978 年,布莱恩·柯林汉(Brian Kernighan)和丹尼斯·里奇(Dennis Ritchie)出版了《C 程序设计语言》的第一版。这本书因作者的首字母缩写而被称为 K&R,多年来一直是该语言的非正式规范。它所描述的 C 版本通常被称为 “K&R C”。由于这是在 1978 年发布的,现在也被称为 C78。

在 20 世纪 70 年代末和 80 年代,随着 C 版本的普及,它被广泛用于各种大型计算机、小型计算机和微型计算机,包括 IBM PC。

1983 年,美国国家标准协会(ANSI)成立了一个委员会 X3J11,以建立 C 的标准规范。1989 年,C 标准被批准为 ANSI X3.159-1989 “程序设计语言 C”。该语言版本通常被称为 ANSI C、标准 C,有时也称为 C89。

1990 年,国际标准化组织(ISO)采用了 ANSI C 标准(经过格式更改),称为 ISO/IEC 9899:1990,有时也称为 C90。因此,术语 “C89” 和 “C90” 指的是相同的编程语言。

至此以后,C 语言又衍生出了后续几个版本的标准。

C 标准

简介

发布者

说明

C89

首个官方 C 标准

ANSI


C90

C89 的 ISO 版本

ISO

有两个技术勘误表,更正了一些错误。

C95

C90 的修正版


增加了对有向图和宽字符的支持

C99


ISO

有三个技术勘误表

C11


ISO

有一个技术勘误表

C17

对 C11 的少量更新

ISO


C23

计划于 2024 年发布



Gcc

Gcc 是类 Unix 系统中常见的编译器,它支持多种编程语言,也包括 C 语言。Gcc 允许使用命令行选项 -std 指定编译过程中要使用的 C 语言标准(也称 C 方言)。否则,Gcc 使用默认的 C 标准,如下表所示。

Gcc 版本

默认使用的 C 标准

3.0 - 4.9.4

-std=gnu89 或

-std=gnu90

5.4.0

-std=gnu11

5.5 - 10.4

-std=gnu11

11.3

-std=gnu17

12.2

-std=gnu17

注:以 C 为前缀的 C 方言是严格 C 模式,而 GNU 前缀则表示带有 GNU 扩展。

查看默认标准

在 Linux 系统中,如果你想要查看当前 Gcc 默认使用的是哪种 C 标准,可以运行如下命令列出已经定义的预处理器符号。

$ gcc -E -dM -x c /dev/null

以 Ubuntu 16.04 为例,符号 __STDC_VERSION__ 的值是 201112L:

#define __STDC_VERSION__ 201112L

又由于符号 __STRICT_ANSI__ 没有被定义,因此该系统默认使用的是 gnu11 标准。

标准的别名

在 Gcc 用 -std 选项指定 C 标准时,这些标准往往还有其它书写形式,比如:

标准

其它形式

备注

-std=c90

-ansi 或

-std=c89 或

-std=iso9899:1990



-std=iso9899:199409

C90 加上 1995 修正案

-std=c99

-std=c9x 或

-std=iso9899:1999


-std=c11

-std=c0x 或

-std=iso9899:2011


Gcc 的特殊选项 -pedantic

Gcc 还有一个特殊选项 -pedantic,该选项对不严格遵守 ISO C 标准要求的行为发出警告;否则,如果没有这个选项的话,某些 GNU 扩展以及传统的 C 特性也会得到支持。

#头条创作挑战赛##C语言每日小知识#

相关文章

C语言鲜为人知的语言特性及开发者注意事项

在多数开发者掌握的基本语法之外,C语言还藏有一些鲜为人知但又极其实用的语言特性。深入了解这些特性,不仅能让你的代码更优雅、高效,同时也能帮助你在性能和内存管理上实现突破。本文将结合实例,详细讲解这些特...

C语言学习的难点(c语言的难题)

C语言学习的主要难点可以概括为以下几点:1. **指针 (Pointers):** 这是C语言最核心也是最难掌握的概念。理解指针、指针运算、指针与数组的关系、多级指针、函数指针等需要花费大量时间和精力...

C 语言流程控制语句学习,三大结构基础知识点学习与实践操作掌握

在 C 语言的程序设计领域,如同搭建一座错综复杂的大厦,而顺序结构、选择结构和循环结构就是构建这座大厦的基石。它们看似简单,却蕴含着无穷的力量,决定了程序运行的走向与逻辑。理解这些结构的概念与作用,不...

每日学习“C·语言”是什么呢?(c的语言是什么)

以下是关于 C 语言的详细信息:一、C 语言的基本特点高效性:C 语言是一种接近硬件的编程语言,它允许程序员直接访问内存地址和操作硬件,因此在性能上具有较高的效率。例如,系统级编程和嵌入式系统开发中,...

C语言char的详解(c语言中char的意思)

在C语言中,char 是一种基础数据类型,用于表示字符或小整数值。对 char 的理解和处理非常重要,尤其是在字符串操作、文件读写或其他需要直接控制内存的应用场景中。下面从基本定义、存储方式、常见用法...

希望所有计算机学生能看到这篇c语言教程

大部分程序员走入编程世界第一个学习的语言就是C语言。作为一门古老的编程语言,c语言拥有48年的发展历程。为什么要学习 C语言?C语言是学习计算机程序设计语言的入门语言。C语言是一门偏底层的语言,学好它...