• C++关键和宏


    流程控制关键字

    if

    else

    switch

    case

    break

    return

    continue

    for

    do while

    while

    goto

    try

    catch

    throw

    default

    (C++11 起)

    数据类型关键字

    bool

    char

    int

    short

    long

    long long

    float

    double

    void

    char8_t

    (C++20)

    wchar_t

    nullptr

    struct

    union

    char16_t

    (C++11)

    char32_t

    C++20 

    auto

    class

    emun

    enum     (C++11 前)

    enumenum class 或 enum struct 之一   (C++11 起)

    数据类型修饰关键字

    signed

    unsigned

    数据类型限制关键字

    const

    static

    extern

    数据类型运算符关键字

    typedef

    typeid

    查询类型的信息。用于必须知晓多态对象的动态类型的场合以及静态类型鉴别。

    数据类型转换关键字

    const_cast

    dynamic_cast

    reinterpret_cast

    static_cast

    数据类型大小计算关键字

    sizeof

    数据类型创建销毁关键字

    new

    delete

    (C++11 起)

    存储期关键字

    static

    用于指示局部变量的存储在程序执行期间保持不变。

    register

    用于提示编译器将变量存储在寄存器中。

    自动存储期说明符 (弃用)

    (C++17 前)

    不使用并保留该关键词。

    (C++17 起)

    mutable

    1、用于修饰类的成员变量,允许其在常量对象中被修改。

    2、从按复制捕获的形参中移除的 const 限定性的 lambda 声明符 (C++11 起)

    volatile

    用于指示变量可能被其他程序或硬件修改。

    编译指令关键字

    asm

    用于嵌入汇编代码。

    export

    用于标记模板定义被导出,这允许在其他翻译单元中声明但不定义同一模板。

    (C++11 前)

    不使用并保留该关键词。

    (C++11 起)
    (C++20 前)

    标记一个声明、一组声明或另一模块为当前模块所导出。

    (C++20 起)

    运算关键字

    and

    用作 && 的替代写法

    and_eq

    用作 &= 的替代写法

    bitand

    用作 & 的替代写法

    bitor

    用作 |的代替写法

    compl

    用作 ~ 的替代写法

    noexcept

    noexcept 运算符进行编译时检查,如果表达式不会抛出任何异常则返回 true。

    not

    用作 ! 的替代写法

    not_eq

    用作 != 的替代写法

    or_eq

    用作 |= 的替代写法

    or

    用作 || 的替代写法

    xor

    作为 ^ 的替代写法

    xor_eq

    用作 ^= 的替代写法

    其他关键字

    class

    用于定义一个类。

    this

    指向当前对象的指针。

    friend

    允许函数或类访问其他类的私有成员。

    private

    设置类的私有访问权限。

    protected

    设置类的保护访问权限。

    public

    设置类的公共访问权限。

    virtual

    用于声明虚函数,允许在派生类中重写这些函数。

    explicit

    用于声明类的构造函数为显式构造函数,防止隐式类型转换。

    operator

    用于定义类的运算符重载函数。

    template

    用于声明一个模板类或模板函数。

    typename

    用于在模板中声明类型参数。

    namespace

    namespace

    using

    用于引入命名空间中特定的标识符。

    alignas(C++11)

    用于指定变量或类型的对齐方式。

    alignof(C++11)

    返回类型或变量的对齐要求。

    override

    用于覆盖基类中的虚函数。

    final

    用于禁止派生类继续派生。

    nullptr

    用于表示空指针。

    true

    表示布尔类型的真值。

    false

    表示布尔类型的假值。

    consteval(C++20)

    指定函数是立即函数(immediate function),即每次调用该函数必须产生编译时常量。

    constexpr

    指定变量或函数的值可以在常量表达式中出现

    constinit

     断言变量拥有静态初始化,即零初始化与常量初始化,否则程序非良构

    decltype

    检查实体的声明类型,或表达式的类型和值类别。

    explicit

    指定构造函数或转换函数 (C++11 起)或推导指引 (C++17 起)为显式,即它不能用于隐式转换和复制初始化。

     explicit 说明符可以与常量表达式一同使用。函数在且只会在该常量表达式求值为 true 时是显式的。(C++20 起)

    explicit 说明符只能在类定义之内的构造函数或转换函数 (C++11 起)的 声明说明符序列中出现

    inline

    1、inline 说明符,在用于函数的 声明说明符序列 时,将函数声明为一个 内联(inline)函数。

    2、在命名空间块内声明的符号被放入一个具名的作用域中,避免这些符号被误认为其他作用域中的同名符号。

    3、多个命名空间块的名字可以相同。这些块中的所有声明在该具名作用域声明。

    reflexpr

    获取类类型的成员列表,或者枚举类型的枚举列表

    获得类型或成员的名称

    检测成员是否是静态的,亦可以获取成员是否是一个常量表达式

    检测成员函数是否为虚, 以及其访问级别是 public、 protected 还是 private.

    获取类型定义时在源代码中的的行号或者列号

    import (C++20)

    module (C++20)

    模块声明:声明当前翻译单元是 模块单元 。

    开始模块单元的 全局模块片段 。

    开始模块单元的 私有模块片段 。(C++20 起)

    线程相关关键字

    atomic_cancel (TM TS)

    atomic_commit (TM TS)

    atomic_noexcept (TM TS)

    synchronized (TM TS)

    thread_local (C++11)

    transaction_safe

    transaction_safe_dynamic

    预处理器

    #if

    表达式 是常量表达式。检查标识符是否被定义为宏名。

    #ifdef

    #ifndef

    #elif

    达式 是常量表达式。检查标识符是否被定义为宏名。

    #elifdef

    #elifndef

    #else

    #endif

    #define

    指令将标识符 定义为宏(macro),即指示编译器以将在它之后出现的所有标识符 都替换为替换列表,而它也可以被进一步处理。如果该标识符已被定义为任何类型的宏,那么除非这些定义都相同,否则程序非良构。

    #undef

    #undef 指令取消定义标识符,即取消 #define 指令所作的标识符 定义。如果标识符未关联到宏,那么忽略该指令。

    #include

    #line

    #error

    1) 实现在遇到 #error 指令后,显示消息 诊断消息 ,并令程序非良构(停止编译)。

    2) 同 (1) ,除了不影响程序的合法性并且编译继续。

    #warning

  • 相关阅读:
    Apache SeaTunnel在VIP 中的使用
    SkyWalking告警通知
    搞懂索引,真的很重要
    一张图秒懂mybatis-plus关键词
    MATLAB主窗口与编辑器窗口分开为两个界面的解决办法
    vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
    玩转代码| Vue 中 JSX 的特性,这一篇讲的明明白白
    iOS13之后获取状态栏高度的方法
    Kotlin 协程之线程池探索之旅(与Java线程池PK)
    C# Onnx Yolov8 Pose 姿态识别
  • 原文地址:https://blog.csdn.net/qq_43812868/article/details/133748148