首页 > 编程语言 >C和C++介绍

C和C++介绍

时间:2024-11-04 09:19:16浏览次数:1  
标签: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_ptrstd::shared_ptr)、lambda 表达式、autonullptr 引入智能指针,自动管理内存
C++14 2014 泛型 lambda、用户定义字面量、增强 std::make_uniquestd::make_shared 继续优化智能指针的使用
C++17 2017 结构化绑定声明、std::optionalstd::variant、并行算法 引入新的内存管理工具,如 std::optionalstd::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

相关文章

  • HTML和CSS 介绍
    HTML(HyperTextMarkupLanguage)定义HTML是一种用于创建网页的标准标记语言。它由一系列的元素组成,这些元素通过标签表示,用于描述网页的结构和内容。特点结构化:HTML使用标签来定义文档的结构,如 <head>, <body>, <h1>, <p> 等。标签可以嵌套,形成树状结构,便于组织......
  • 深圳保税区仓储包装和分拣集拼的功能介绍
    保税仓库的定义很多人将保税仓、保税区、保税仓库等混淆,其实三者在海关监管中属于不同规章制度调整范畴,运作模式及要求存在很大差异。如频繁出现于跨境电商报道中的“保税仓”,通常是指海关特殊监管区域及保税物流中心(B型)内的仓储场所,并非指保税仓库,“保税仓”虽然颇为准确地......
  • 南沙C++信奥赛陈老师解一本通题 1230:寻找平面上的极大点
    ​ 【题目描述】在一个平面上,如果有两个点(x,y),(a,b),如果说(x,y)支配了(a,b),这是指x≥a,y≥b;用图形来看就是(a,b)坐落在以(x,y)为右上角的一个无限的区域内。给定n个点的集合,一定存在若干个点,它们不会被集合中的任何一点所支配,这些点叫做极大值点。编程找出所有的极大点......
  • FreeRTOS操作系统1,介绍
    1操作系统1.1.1操作系统概述手机:点击相机(上位机顶层)---->操作系统----->打开摄像头(硬件底层)不上操作系统:相机--->打开摄像头:该情况下只有原相机可以打开摄像头,不支持第三方软件MCU:没上操作系统之前--->硬件上操作系统:MCU--->操作系统--->硬件图例:1.1.2常见操作系统Win......
  • 【C++篇】跨越有限与无限的边界:STL之set容器中的自我秩序与无限可能
    文章目录C++`set`容器详解:秩序与高效的数据管理前言第一章:C++`set`的概念1.1`set`的定义1.2`set`的特点第二章:`set`的构造方法2.1常见构造函数2.1.1示例:不同构造方法2.2相关文档第三章:`set`的常用操作3.1插入操作详解3.1.1使用`insert()`插入元素3.1......
  • GPT 1-3 简单介绍
    GPT-1简介2018年6月,OpenAI公司发表了论文"ImprovingLanguageUnderstandingbyGenerativePretraining"(用生成式预训练提高模型的语言理解能力),推出了具有1.17亿个参数的GPT-1(GenerativePre-training,生成式预训练)模型。GPT-1采用传统的语言模型方法进行预训练,即使用......
  • C++——文件操作
    在C++编程中,文件操作是一个重要的组成部分,它允许程序读取、写入和处理文件数据。为了执行文件操作,C++提供了一系列的类和函数,这些都包含在标准库的<iostream>和<fstream>头文件中。目录一、I/O流二、文本文件1.写文件2.写文件三、二进制文件1.二进制读写操作四、C++......
  • ZK范式系列之zkVM介绍(1)
    1.引言zkVM(Zero-KnowledgeVirtualMachine,零知识虚拟机):是一种功能强大的虚拟机,利用零知识证明(zero-knowledgeproof,ZKP)来保证计算的完整性和隐私性。零知识证明(ZKP):是一种密码学技术,使一方能够向另一方证明声明的有效性,而无需透露任何其他信息。简单来说,这就像证明......
  • Windows Active Directory技术介绍和应用——集中式用户账户管理
    大纲静态IP构建组织用户加域修改DNS加域题外参考资料企业可以将所有员工的账户信息集中存储在ActiveDirectory中,方便管理员进行统一创建、修改、删除用户账号等操作。例如,当新员工入职时,管理员可以快速创建其账号并赋予相应的权限和访问级别;员工离职时,也能及时禁......
  • 虚拟化技术介绍
    概念解释虚拟化(技术)是什么虚拟化技术是一种资源管理(优化)技术,将计算机的各种物理资源予以抽象、转换,然后呈现出来的一个可供分割并任意组合为一个或多个(虚拟)计算机的配置环境。(以上摘自《虚拟化技术发展编年史》)计算机虚拟化技术简单说来就两点:虚拟化(抽象)+复用(转换);虚拟化设备......