新闻详情

新闻详情

首页 / 资讯中心 / 详情

C语言进化与关键字扩展全梳理

发布时间:2026/9/15 2:24:33来源:尧图网络
C语言进化与关键字扩展全梳理
C语言进化与关键字扩展全梳理一、C语言版本演进主线1. KR C1978初代C由RitchieKernighan定稿无标准规范编译器实现自由。- 基础语法函数、指针、数组、 if/for/while/switch- 无标准库、无原型声明函数默认 int 返回值- 关键字极少没有const/volatile/signed/unsigned 早期没有 void2. ANSI C / C891989第一个国标C使用最广美国ANSI标准化ISO同步C90现代C基准。C89标准关键字32个plaintextauto break case char const continue default do double else enumextern float for goto if inline(预留未启用) int long register returnshort signed sizeof static struct switch typedef union unsigned void volatile while新增关键扩展1. void 空类型、无返回、通用指针 void*2. const 只读常量修饰3. volatile 防止编译器优化硬件寄存器专用4. 枚举 enum 、函数原型声明、标准C库stdio/stdlib等3. C951995小幅增补仅增补宽字符相关新增少量库宏无新增关键字引入 wchar_t 。4. C991999C划时代大更新关键字大幅扩容新增5个标准关键字_Bool _Complex _Imaginary inline restrict关键字释义1. inline 内联函数减少函数调用开销C89预留C99正式启用2. _Bool 布尔类型 true/false 靠stdbool.h宏封装3. _Complex/_Imaginary 复数、虚数浮点类型科学计算4. restrict 指针限定告诉编译器指针是唯一访问内存的方式优化编译C99语法配套变革非关键字但影响编码- 变长数组VLA、 for(int i0;...) 循环内定义变量- // 单行注释合法化、不定长结构体柔性数组 struct{int a; char buf;}5. C112011现代主流新标准嵌入式/操作系统首选新增6个标准关键字_Alignas _Alignof _Atomic _Generic _Noreturn _Static_assert关键字作用1. _Alignof/_Alignas 内存对齐查询、手动指定对齐2. _Atomic 原子类型多线程无锁并发C语言原生并发基础3. _Generic 泛型宏C实现泛型编程4. _Noreturn 标记函数永不返回如exit、异常终止函数5. _Static_assert 编译期断言编译阶段报错非运行时额外变化移除 gets() 危险函数支持多线程标准库 threads.h 。6. C172017缺陷修订版无新增任何关键字仅修复C11规范漏洞、库函数bug规范未完善的细节日常编码无语法改动。7. C232023最新正式C标准新增关键字 bool true false nullptr- 废除 _Bool 直接原生 bool 不用包含 stdbool.h- nullptr 空指针字面量替代 NULL 宏类型安全- 扩充 _Atomic 、泛型 _Generic 语法细节二、关键字分类 版本汇总表版本 关键字总数 新增关键字KR C 27个 基础控制数据类型关键字C89/C90 32个 void const volatile signed unsigned enumC99 37个 inline _Bool _Complex _Imaginary restrictC11 43个 _Alignas _Alignof _Atomic _Generic _Noreturn _Static_assertC17 43个 无新增C23 46个 bool true false nullptr三、编译器厂商扩展关键字非标准GCC/MSVC特有不属于ISO标准编译器私有关键字跨平台不兼容1. GCC扩展 __attribute__ __packed __volatile__ __typeof__ __asm__ 嵌入式Linux高频2. MSVC(VS)扩展 __declspec __inline __int8 __int16 Windows驱动开发规范写法双下划线开头区分标准C关键字四、关键字扩展设计逻辑1. 硬件适配 volatile/_Alignof/_Atomic → 适配寄存器、内存对齐、多核硬件2. 编译优化 inline/restrict → 辅助编译器优化生成机器码3. 类型安全 const/nullptr/_Bool → 减少野指针、非法修改常量4. 工程健壮 _Static_assert/_Noreturn → 编译期校验提前拦截错误5. 现代编程 _Generic/_Atomic → 补齐泛型、多线程短板贴近C能力五、工程选型建议1. 单片机/老嵌入式C89编译器兼容性最强2. Linux驱动、新嵌入式C99/C11工业主流3. 新项目、跨平台优先C17/C23类型更安全
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Docs 项目在 Windows 下 Git 换行符被自动转换怎么解决 2026/9/15 11:21:42

Docs 项目在 Windows 下 Git 换行符被自动转换怎么解决

Docs 项目在 Windows 下 Git 换行符被自动转换怎么解决 【免费下载链接】docs Docs is an open-source text editor: web-native, made for real-time collaboration, cleanly structured documents and sub-documents with full ownership of your data. Built to scale with …

阅读更多 →
Kutt 自建 URL 短链服务完整指南:5 分钟跑通你的短链接系统 2026/9/15 11:21:42

Kutt 自建 URL 短链服务完整指南:5 分钟跑通你的短链接系统

Kutt 自建 URL 短链服务完整指南:5 分钟跑通你的短链接系统 【免费下载链接】kutt Free Modern URL Shortener. 项目地址: https://gitcode.com/GitHub_Trending/ku/kutt Kutt 是一个免费开源的 URL 短链器,帮你把长链接变成短链接。它自托管、默…

阅读更多 →
萤火商城uniapp端全流程拆解:部署、编译与上架避坑指南 2026/9/15 11:21:42

萤火商城uniapp端全流程拆解:部署、编译与上架避坑指南

简介:面向需要快速搭建电商平台或学习 uniapp 跨端开发的开发者与前端工程师,这是一套基于 Vue.js 的萤火商城 2.0.8 开源版 uniapp 端代码包。压缩包共 231 个文件,以 132 个 js 与 60 个 vue 文件为代码主干,配合 15 个 scss、5…

阅读更多 →
es-toolkit/compat 的 sum 函数:Lodash 兼容求和与迁移到现代 API 的完整指南 2026/9/15 11:21:42

es-toolkit/compat 的 sum 函数:Lodash 兼容求和与迁移到现代 API 的完整指南

es-toolkit/compat 的 sum 函数:Lodash 兼容求和与迁移到现代 API 的完整指南 【免费下载链接】es-toolkit A modern JavaScript utility library thats 2-3 times faster and up to 97% smaller, a major upgrade to lodash. 项目地址: https://gitcode.com/GitH…

阅读更多 →
Quickwit 在 AWS S3 上的成本优化指南:数据迁移、实例选型与请求费用剖析 2026/9/15 11:21:42

Quickwit 在 AWS S3 上的成本优化指南:数据迁移、实例选型与请求费用剖析

Quickwit 在 AWS S3 上的成本优化指南:数据迁移、实例选型与请求费用剖析 【免费下载链接】quickwit Cloud-native OSS search engine for observability 项目地址: https://gitcode.com/GitHub_Trending/qu/quickwit 导读 Quickwit 是一个面向可观测性场景…

阅读更多 →
FlagEmbedding 检索模型评测全指南:七大 Benchmark 的完整评估流程、参数体系与源码原理 2026/9/15 11:18:42

FlagEmbedding 检索模型评测全指南:七大 Benchmark 的完整评估流程、参数体系与源码原理

FlagEmbedding 检索模型评测全指南:七大 Benchmark 的完整评估流程、参数体系与源码原理 【免费下载链接】FlagEmbedding Retrieval and Retrieval-augmented LLMs 项目地址: https://gitcode.com/GitHub_Trending/fl/FlagEmbedding 本篇技术指南以 FlagEmbe…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞