标签:std STL 介绍 嵌入式 标准 C++ 内存
C 语言介绍
C 语言是一种通用的高级编程语言,由 Dennis Ritchie 在 1972 年开发。它以其高效性和灵活性广泛应用于系统编程和嵌入式系统。C 语言提供了对底层内存的直接访问能力,支持过程化编程,并且具有丰富的标准库。
C 语言版本及内存管理特性
版本 |
发布年份 |
新特性/改进 |
内存管理相关特性 |
C89/C90 |
1989 |
引入标准库、函数原型、void 数据类型 |
引入动态内存分配 (malloc , calloc , free ) |
C99 |
1999 |
inline 函数、long long 类型、变长数组、可变参数宏、_Bool 类型 |
支持变长数组,增加了对类型的更大支持 |
C11 |
2011 |
多线程支持、原子操作、静态断言、类型泛型宏、Unicode 支持 |
线程安全内存管理,增加了原子类型 |
C17 |
2017 |
修复 C11 中的缺陷,增加小的改进 |
继续优化内存管理细节 |
C 标准库实现
库名称 |
简介 |
使用场景 |
glibc |
GNU C 库,最常见的 C 标准库实现,用于大多数 GNU/Linux 发行版。提供完整的 POSIX 兼容接口,包含线程、网络和文件操作支持。 |
Linux系统的默认选择 |
musl |
轻量级、快速的 C 标准库,专注于小型、静态编译的系统,兼容 POSIX 和 C 标准。常用于 Alpine Linux 和容器中。 |
资源受限的系统 |
uClibc |
适用于嵌入式 Linux 系统的轻量级 C 标准库,支持较小的二进制文件,但功能不如 glibc 完整。现已发展为 uClibc-ng 分支。 |
嵌入式系统 |
Bionic |
安卓系统的 C 标准库,实现了基本的 C 标准库功能,提供移动平台特有的功能优化。 |
Android系统 |
newlib |
用于嵌入式系统的轻量级 C 库,最初由 Cygnus Solutions 开发,支持嵌入式和 RTOS 环境。 |
嵌入式开发 |
Dietlibc |
超小型 C 标准库,体积小,适合小内存、低存储设备,支持基本 C 标准库函数。 |
超小型设备 |
libc++ |
LLVM 提供的轻量 C 标准库,专为符合现代 C++ 标准而设计,主要用于 macOS 和 BSD 系统。 |
LLVM环境 |
MSVC CRT |
微软提供的 C 运行时库,实现了 C/C++ 标准库的大部分内容,包含 Windows 特定的功能和扩展。 |
Windows系统 |
C++ 语言介绍
C++ 语言是 C 语言的扩展,由 Bjarne Stroustrup 在 1983 年开发。它支持面向对象编程、泛型编程以及过程化编程。C++ 提供了丰富的标准模板库(STL),使得数据结构和算法的使用变得更加高效和便捷。
C++ 语言版本及内存管理特性
版本 |
发布年份 |
新特性/改进 |
内存管理相关特性 |
C++98 |
1998 |
引入 STL、异常处理、命名空间、运算符重载、模板 |
引入构造函数和析构函数,管理对象的生命周期 |
C++03 |
2003 |
主要是对 C++98 的修正 |
继续改进内存管理 |
C++11 |
2011 |
范围 for 循环、智能指针(std::unique_ptr 和 std::shared_ptr )、lambda 表达式、auto 、nullptr |
引入智能指针,自动管理内存 |
C++14 |
2014 |
泛型 lambda、用户定义字面量、增强 std::make_unique 和 std::make_shared |
继续优化智能指针的使用 |
C++17 |
2017 |
结构化绑定声明、std::optional 、std::variant 、并行算法 |
引入新的内存管理工具,如 std::optional 和 std::variant |
C++20 |
2020 |
概念、协程、std::format 、范围库 |
新的内存管理特性,支持更复杂的数据结构 |
C++ 标准库实现
库名称 |
简介 |
使用场景 |
libstdc++ |
GCC(GNU 编译器套件)提供的 C++ 标准库,广泛应用于 Linux、macOS、Windows 等跨平台环境。 |
跨平台 C++ 开发 |
LLVM libc++ |
LLVM 项目提供的 C++ 标准库,专为现代 C++ 标准优化设计,支持 C++11 及更新的标准。 |
macOS, iOS, BSD |
MSVC STL |
微软提供的 STL 实现,集成在 MSVC 编译器中,支持最新的 C++ 标准,包含 Windows 环境的优化。 |
Windows 系统开发 |
EASTL |
EA(Electronic Arts)开发的游戏优化 STL 实现,关注高性能、低内存分配开销,常用于游戏开发。 |
游戏开发 |
SGI STL |
由 Silicon Graphics 推出的 STL 实现,是许多 C++ 标准库实现的基础,后来被 libstdc++ 和 MSVC STL 吸收。 |
历史性实现 |
标签:std,
STL,
介绍,
嵌入式,
标准,
C++,
内存
From: https://www.cnblogs.com/dx5800/p/18520472