定位:非标准化的原始版本,由Brian Kernighan和Dennis Ritchie定义
特性:
基础语法:函数声明无参数列表(如int func())
无标准库支持,依赖编译器的本地实现
仅支持基本数据类型(int、char、float等)
定位:首个官方标准(ANSI C / ISO C)
核心改进:
标准化语法:明确函数原型声明(如int func(int a))
引入标准库:包含stdio.h、stdlib.h等基础头文件
新增void类型和const关键字
定位:面向现代编程需求的重大更新
关键特性:
新数据类型:long long(64位整数)、_Bool(布尔类型)、_Complex(复数类型)
语法增强:
单行注释(//)
变长数组(VLA)添加链接描述
复合字面量(如(int[]){1,2,3})添加链接描述
灵活性提升:允许变量声明与代码混合(如for(int i=0; …))
定位:提升安全性与跨平台能力
主要改进:
多线程支持:引入<threads.h>库(需编译器实现支持)添加链接描述
泛型编程:通过_Generic关键字实现泛型选择表达式添加链接描述
安全性增强:
gets()函数被废弃,推荐gets_s()添加链接描述
匿名结构体/联合体支持添加链接描述
定位:缺陷修复版,无新语法引入
调整内容:
修正C11中的未定义行为和标准描述模糊点
移除部分试验性特性(如__STDC_ANALYZABLE__宏)
定位:现代化扩展(草案阶段)
预期特性(部分已实现):
二进制字面量:0b1010
属性增强:[[deprecated]]标记函数弃用
模式匹配:支持类似Rust的match表达式原型添加链接描述