C++关键字汇总

【码极客精讲】c++关键字大全 c++关键字 阅读详情

在C++里,保留关键字是被语言本身赋予特定含义的单词,程序员不能将它们用作自定义的标识符(像变量名、函数名等)。根据不同的C++标准,保留关键字的数量有所不同。

C++98/03标准

C++98是首个国际标准化的C++版本,C++03是对C++98的小幅度修订,二者的关键字基本一致,共有63个保留关键字,列举如下:

asm          auto        bool        break       case
catch        char        class       const       const_cast
continue     default     delete      do          double
dynamic_cast else        enum        explicit    export
extern       false       float       for         friend
goto         if          inline      int         long
mutable      namespace   new         operator    private
protected    public      register    reinterpret_cast  return
short        signed      sizeof      static      static_cast
struct       switch      template    this        throw
true         try         typedef     typeid      typename
union        unsigned    using       virtual     void
volatile     wchar_t     while

C++11标准

C++11带来了许多新特性,同时新增了一些保留关键字,总共达到73个。新增的关键字如下:

alignas     alignof     constexpr   decltype    nullptr
static_assert thread_local

C++14标准

C++14是C++11的增量更新版本,并未新增保留关键字,依然是73个。

C++17标准

C++17进一步发展了C++语言,又新增了3个保留关键字,使总数变为76个。新增关键字如下:

if constexpr

这里 if 和 constexpr 一起构成了一个新的控制结构,但也算作新增关键字的一部分。另外还有 inline(这里的 inline 在新语义下可看作新增用法)。

C++20标准

C++20引入了不少重要特性,新增了11个保留关键字,关键字总数达到87个。新增关键字如下:

concept     consteval     constinit    co_await    co_return
co_yield    requires

C++23标准

C++23在C++20基础上继续发展,新增了4个保留关键字,总共拥有91个保留关键字。新增关键字如下:

import    module    reflexpr    sync

C++中各保留关键字的意义:

C++98/03标准

  1. asm:用于嵌入汇编语言代码。
  2. auto:自动存储类型说明符,通常用于局部变量,由编译器自动推断变量类型。
  3. bool:布尔数据类型,用于表示逻辑值 true 或 false。
  4. break:用于跳出循环(for、while、do-while)或 switch 语句。
  5. case:在 switch 语句中,用于标记不同的分支。
  6. catch:用于捕获异常,与 try 语句一起使用。
  7. char:字符数据类型,用于存储单个字符。
  8. class:用于定义类,是面向对象编程的基本构建块。
  9. const:表示常量,用于修饰变量、函数参数等,使其值不可修改。
  10. const_cast:用于进行类型转换,去除对象的常量性。
  11. continue:用于跳过本次循环的剩余部分,直接进入下一次循环。
  12. default:在 switch 语句中,作为默认分支,当所有 case 都不匹配时执行。
  13. delete:用于释放由 new 运算符分配的内存。
  14. do:与 while 一起构成 do-while 循环,先执行循环体,再判断条件。
  15. double:双精度浮点数数据类型,用于存储带小数点的数值。
  16. dynamic_cast:用于在运行时进行安全的向下转型,主要用于多态类型之间的转换。
  17. else:与 if 语句一起使用,表示条件不成立时执行的分支。
  18. enum:用于定义枚举类型,是一种用户自定义的数据类型,包含一组命名常量。
  19. explicit:用于修饰构造函数,防止隐式类型转换。
  20. export:用于在模板定义中导出模板,使其可以在其他编译单元中使用。
  21. extern:用于声明外部变量或函数,指示编译器该变量或函数在其他地方定义。
  22. false:布尔常量,表示逻辑假。
  23. float:单精度浮点数数据类型,用于存储带小数点的数值。
  24. for:用于循环语句,常用于已知循环次数的情况。
  25. friend:用于声明友元函数或友元类,使它们能够访问类的私有成员。
  26. goto:无条件跳转语句,用于在程序中跳转到指定的标签处。
  27. if:条件判断语句,根据条件执行不同的代码块。
  28. inline:用于声明内联函数,建议编译器将函数体直接插入到调用处,以提高程序运行效率。
  29. int:整数数据类型,用于存储整数值。
  30. long:长整数数据类型,通常用于存储较大的整数值。
  31. mutable:用于修饰类的数据成员,即使在 const 成员函数中也可以修改该成员。
  32. namespace:用于定义命名空间,将程序中的标识符组织在不同的命名空间中,以避免命名冲突。
  33. new:用于动态分配内存,创建对象或数组。
  34. operator:用于定义运算符重载函数,允许对自定义类型使用标准运算符。
  35. private:类成员访问限定符,私有成员只能在类内部访问。
  36. protected:类成员访问限定符,受保护成员可以在类内部和派生类中访问。
  37. public:类成员访问限定符,公有成员可以在类外部访问。
  38. register:建议编译器将变量存储在寄存器中,以提高访问速度,但现代编译器会自动进行优化,该关键字使用较少。
  39. reinterpret_cast:用于进行重新解释类型转换,通常用于底层指针操作或不同数据类型之间的强制转换,但这种转换可能是不安全的。
  40. return:用于从函数返回值,并结束函数的执行。
  41. short:短整数数据类型,用于存储较小的整数值。
  42. signed:表示有符号的整数类型,可正可负。
  43. sizeof:用于获取数据类型或变量所占用的字节数。
  44. static:用于修饰变量或函数,具有不同的含义,如静态变量在程序的整个生命周期内存在,静态函数属于类而不属于对象。
  45. static_cast:用于进行静态类型转换,在编译时进行检查,用于较为安全的类型转换,如基本数据类型之间的转换、派生类到基类的转换等。
  46. struct:用于定义结构体,是一种用户自定义的数据类型,用于存储不同类型的数据成员。与类类似,但默认成员访问权限为公有。
  47. switch:用于多分支选择语句,根据表达式的值选择不同的分支执行。
  48. template:用于定义模板,包括函数模板和类模板,实现代码的泛型编程。
  49. this:在类的成员函数中,this 指针指向当前对象,用于访问对象的成员变量和成员函数。
  50. throw:用于抛出异常,用于在程序中表示出现了错误或异常情况。
  51. true:布尔常量,表示逻辑真。
  52. try:用于尝试执行一段可能会抛出异常的代码块,与 catch 一起用于异常处理。
  53. typedef:用于为已有的数据类型定义别名,提高代码的可读性和可维护性。
  54. typeid:用于获取对象的类型信息,在运行时确定对象的实际类型。
  55. typename:用于在模板定义中表示类型参数,告诉编译器后面跟着的是一个类型名。
  56. union:用于定义联合类型,是一种特殊的数据类型,它的所有成员共享同一块内存空间,同一时刻只能有一个成员有效。
  57. unsigned:表示无符号的整数类型,只能存储非负整数。
  58. using:有多种用途,如引入命名空间、定义类型别名等。
  59. virtual:用于声明虚函数,实现多态性,在派生类中可以重写虚函数。
  60. void:表示无类型,用于函数返回值、函数参数列表或指针类型,表示不指向任何具体的数据类型。
  61. volatile:用于修饰变量,告诉编译器该变量的值可能会在程序外部被修改,禁止编译器对该变量进行优化。
  62. wchar_t:宽字符数据类型,用于存储宽字符,通常用于处理Unicode字符。
  63. while:用于循环语句,只要条件为真,就会重复执行循环体。

C++11标准

  1. alignas:用于指定数据类型或对象的对齐方式。
  2. alignof:用于获取数据类型或对象的对齐要求。
  3. constexpr:用于声明常量表达式,在编译时就能计算出结果的表达式。
  4. decltype:用于推导表达式的类型。
  5. nullptr:表示空指针常量,用于替代传统的 NULL。
  6. static_assert:用于在编译时进行断言检查,如果条件不满足,则编译失败。
  7. thread_local:用于声明线程局部存储变量,每个线程都有自己独立的变量副本。

C++17标准

  1. if constexpr:是一种编译时的条件判断,根据常量表达式的值在编译时选择执行不同的代码分支。
  2. inline:在C++17中,inline 函数可以在多个翻译单元中定义,但必须保证定义相同。这使得在头文件中定义函数时,可以更方便地使用 inline 来避免链接错误。

C++20标准

  1. concept:用于定义概念,是对模板参数的约束,用于指定模板参数必须满足的条件。
  2. consteval:用于声明立即函数,该函数必须在编译时被求值。
  3. constinit:用于声明变量,确保变量在初始化时被初始化为常量表达式。
  4. co_await:用于暂停协程的执行,等待一个可等待对象完成。
  5. co_return:用于从协程中返回值,并暂停协程的执行。
  6. co_yield:用于在协程中产生一个值,并暂停协程的执行,以便下次调用时继续从该点执行。
  7. requires:用于在模板定义中指定约束条件,类似于 concept,但更灵活。

C++23标准

  1. import:用于导入模块,是C++23中引入的新特性,用于替代传统的头文件包含。
  2. module:用于定义模块,将代码组织成模块,提高代码的可维护性和可重用性。
  3. reflexpr:用于获取表达式的反射信息,这是一个高级特性,用于在编译时获取关于程序元素的信息。
  4. sync:用于表示同步操作,例如在并发编程中用于确保某些操作的顺序执行。

这些关键字是C++语言的重要组成部分,理解它们的含义和用法对于编写高效、正确的C++代码至关重要。

C++关键字入门(小白必看) 详细讲述C++中除C语言的关键字,便于初学者更好了解C++这门语言。 阅读详情

相关推荐

C/C++ 32个关键词,9条语句,34个运算符

一、C语言关键词(32个)1、数据类型关键字(14个)(1) char :声明字符型变量或函数 (1个byte)(2) short :声明短整型变量或函数 (2个byte)(3) int: 声明整型变量或函数 (4个byte)(4) long :声明长整型变量或函数 (4个byte)(5) float:声明浮点型变量或函数 (4个byte)(6) double :声明双精度变量或函数 (8个byt...

zmz971751504的博客 2422

c++ 常用关键字

const和volatile是类型修饰符,语法类似,用于变量或函数参数声明,也可以限制非静态成员函数。const表示只读类型(指定类型安全性,保护对象不被意外修改),volatile指定被修饰的对象类型的读操作是副作用(因此读取不能被随便优化合并,适合映射I/O寄存器等)。volatile:a、当读取一个变量时,为提高存取速度,编译器优化时有时会先把变量读取到一个寄存器中,以后再取变量值时,就直接从寄存器中取值。...

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 5145

STM32F407 CubeMX UART DMA高效解析BNO085九轴数据

本文详细介绍了如何在STM32F407平台上使用CubeMX配置UART和DMA高效解析BNO085九轴传感器数据。通过DMA循环接收机制实现低CPU占用的实时数据采集,并分享数据解析技巧、错误处理及实战调试经验,为嵌入式开发者提供完整解决方案。

o4p5q6r7s的博客 235

C++的关键字

C++关键字

weixin_41652700的博客 5635

MOSFET和IGBT栅极驱动器电路的基本原理学习(2)

1.PWM直接驱动 驱动主开关晶体管栅极的最简单方法是利用 PWM 控制器的栅极驱动输出,如图 (1)如 图 8中所示,PWM 控制器和 MOSFET 之间可能有较大距离。由于栅极驱动和接地环路迹线形成的环路,这个距离形成了寄生电感,从而降低了开关速度,并导致栅极驱动波形中形成振铃。为了降低与栅极驱动连接相关的电感,需要更宽的 PCB 迹线。 (2)直接栅极驱动的另一个问题是PWM 控制器的驱动电流能力有限。极少有集成电路能提供高于 1A 的峰值栅极驱动能力。 2.旁路电容的确定 (1)位置 如果是独立的

weixin_43732932的博客 5831

ASM磁盘通过rebalance迁移

一、实施要点: 1、数据迁移前,如果库不大,最好全库备份一次 2、进行数据平衡时,数据磁盘是添加到现有磁盘组,而不是重新建一个磁盘组 3、本次实施过程,服务器只有1张HBA卡,本次实施先取消原有的多路径,只保留旧有存储单路径,另一个FC口插上新存储的路径。待迁移完成后,再配置新存储的多路径 二、实施步骤 1.查询并配置ASM磁盘 [root@rac1 ~]# /sbin/scsi_id...

qq_40673916的博客 1373

C++ 关键字全面汇总

在 C++ 编程中,关键字是被语言保留的特殊标识符,它们具有特定的语义,不能被用作变量名、函数名或类名等。以下是对 C++ 中所有关键字的全面汇总。

m0_57836225的博客 1838

433MHz无线通信避坑指南:如何解决信号干扰和误码问题

本文深入探讨433MHz无线通信中的信号干扰和误码问题,提供从射频前端设计到协议优化的全链路解决方案。通过天线匹配、电源噪声抑制、曼彻斯特编码改进及实时频点切换等技术,显著提升通信稳定性和距离。适合智能家居和工业无线控制系统的开发者参考。

weixin_29288313的博客 417

必须掌握的C++常用关键字汇总

本文将对一些常见c++关键字做一个总结,共包括如下关键字: const、extern、operator、sizeof、-static、new、volatile、union

yixianfeng41的专栏 1万+

VMware使用Windows、WinXP等虚拟机上不了网的解决办法(管用)

这个情况一般出现在可以插网线的电脑上,比如台式机和有网线插口的笔记本。需要转换器才能插网线的笔记本一般不会出现这种情况. 查看主机的IP地址和虚拟机的IP地址是否在同一网段,如果在的话,虚拟机就能上网了!!(备注:虚拟机中的IP地址一定要和主机中的用来上网的那个连接的IP地址相同哦)。

爱吃雪糕的小布丁的博客 1万+

【即插即用模块】注意力篇 | ECCV 2024 | DPB:高低频动态分离+双提示融合,PSNR直冲40+!

本文提出了一种基于频率提示的图像恢复方法FPro,通过动态滤波器分离输入特征的高低频分量,并采用双提示块(DPB)进行频域专属提示生成与调制。DPB包含低频提示调制器(LPM)和高频提示调制器(HPM),分别处理不同频段信号,通过生成提示组件并融合解码器特征来优化恢复效果。实验表明,该方法在U型结构中表现优异,尤其适用于分割、底层视觉和多模态任务。模块通过动态无监督频率分离、频域专属提示生成和适配性融合机制,有效解决了传统方法对频域信息关注不足的问题,显著提升了图像恢复质量。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 147

c++关键字汇总

函数名后面添加 noexcept 指示不会抛出异常,如果出现了异常,程序将终止。

C18304057755的博客 404

芒果YOLO11改进17:即插即用 | 损失函数Repulsion Loss|Repulsion 解决目标遮挡场景下的目标检测,为解决密集人群检测中遮挡设计的损失函数,打造高效

即插即用 | 损失函数Repulsion Loss|Repulsion 解决目标遮挡场景下的目标检测,为解决密集人群检测中遮挡设计的损失函数,打造高效

包括YOLOv5、YOLOv7、YOLOv8等模型改进 484

C++中变量声明关键字汇总

在 C++ 类的成员变量被声明为 static(称为静态成员变量),意味着它被该类的所有实例所共享,也就是说当某个类的实例修改了该静态成员变量,其修改值为该类的其它所有实例所见;const(常量的,constant)所修饰的对象或变量不能被改变,修饰函数时,该函数不能改变在该函数外面声明的变量也不能调用任何非const函数。③ 把空指针转换成目标类型的空指针。它可以把一个指针转换成一个整数,也可以把一个整数转换成一个指针(先把一个指针转换成一个整数,在把该整数转换成原类型的指针,还可以得到原先的指针值)。

xym352860763的博客 1925

【ZYNQ】VDMA 的使用

VDMA, Video Direct Memory Access 是 Xilinx 官方提供的高速内存存取 IP,采用 AXI4-Stream 与 AXI4 协议实现存储映射接口(Memory Map)与非存储映射接口(Non-Memory Map)接口的转换,主要用于视频数据缓存,同时提供帧缓存与帧同步控制功能。本文主要介绍 AXI VDMA 的配置与使用方法。

洋洋Young的博客 1581

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

C\C++之关键字梳理汇总

C++之各种数据类型梳理汇总 C++ 中的关键字 叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧!

小啊呜的博客 272

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

C++关键字汇总并举例

asm 用于在C++源码中内嵌汇编语言。 __asm mov al, 2 __asm mov dx, 0xD007 __asm out al, dx do 配合while使用 do { ... }while(1) if 判断 if(){ ... }else{ ... } return 返回 return 1; try 异常处理,激活异常 try { ... }catch(异常){ ... } auto .

qq_35836473的博客 811

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

C++ 关键字 static 面试高频问题汇总

C++中static关键字的核心概念与应用总结 static关键字在C++中有四种主要用法:1)修饰局部变量使其拥有全局生命周期;2)修饰全局变量/函数限制其作用域至当前源文件;3)修饰类数据成员使其成为共享变量;4)修饰成员函数使其不依赖对象实例。关键区别体现在生命周期、作用域和存储方式上:静态变量存储在全局/静态区,生命周期贯穿程序运行;静态成员属于类而非对象,所有实例共享;静态函数无this指针,不能访问非静态成员。特殊限制包括:静态函数不能声明为virtual(无多态机制)或const(无对象状态可

2401_82978699的博客 439

C/C++中static关键字用法汇总

        1. 函数内static局部变量:变量在程序初始化时被分配,直到程序退出前才被释放,也就是static是按照程序的生命周期来分配释放变量的,而不是变量自己的生命周期。多次调用,仅需一次初始化。        2. cpp内的static全局变量:只在cpp内有效。在不同的cpp文件中定义同名变量,不必担心命名冲突。保持变量内容的持久。        3. 头文件内的static全局...

网络资源是无限的 4058

c++关键字const 用法汇总

​​​​#include<iostream> using namespace std; class A{ int num; public: A(){} A(int n):num(n){}; void f()const{ //num=6; const加在成员函数后面 那么在函数体中就不能修改成员变量 cout<&lt...

artistkeepmonkey的博客 362

C++ 关键字汇总(避免作为变量名使用)

asm asm (指令字符串):允许在 C++ 程序中嵌入汇编代码。 auto auto(自动,automatic)是存储类型标识符,表明变量"自动"具有本地范围,块范围的变量声明(如for循环体内的变量声明)默认为auto存储类型。 bool bool(布尔)类型,C++ 中的基本数据结构,其值可选为 true(真)或者 false(假)。C++ 中的 bool 类型可以和 int 混用,具体来说就是 0 代表 false,非 0 代表 true。bool 类型常用于条件判断和函数返回值。 .

源代码杀手的博客 1380

程序员面试题汇总之C/C++关键字(一)

从今天开始,每天整理一个专题的面试题汇总,以便后面求职使用。 关键字是组成用语言的最基本单位,对于关键字的理解,有助于编写高质量的代码。 1.1 static(静态)变量有什么作用? 在C语言中,其3个明显的作用: 在函数体内,静态变量具有“记忆”功能,即一个被声明为静态的变量在这一函数被调用的过程中其值维持不变。 在模块内(但在函数体外),它的作用域范围是有限制的,即如果一个变量被声明为...

weixin_42388255的博客 593

C++关键字总结

根据C++标准规范。

wanghu2024的博客 611

【C++札记】const关键字

C++中const关键字无处不在,我这里做下汇总,作为工具文章方便翻阅。 一:修饰数据成员 修饰的成员一单定义初始化后不能再进行修改,如: const int a = 10; a =20; //重新赋值直接会报错 当修饰类的成员函数时,先来段错误的代码 class Student { public: Student(int i) { thi...

码农code之路 339
上一篇: python中所有内置类型
下一篇: python关键字汇总
越甲八千
博客等级 码龄11年 2959粉丝 553原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值