
C/C++语法
文章平均质量分 68
C/C++语法
瞻邈
老菜鸟一个。
展开
-
C++关键字static
作用修饰普通变量,修改变量的存储区域和生命周期,使变量存储在静态区,在 main 函数运行前就分配了空间,如果有初始值就用初始值初始化它,如果没有初始值系统用默认值初始化它。 修饰普通函数,表明函数的作用范围,仅在定义该函数的文件内才能使用。在多人开发项目时,为了防止与他人命令函数重名,可以将函数定位为 static。 修饰成员变量,修饰成员变量使所有的对象只保存一个该变量,而且不需要生成对象就可以访问该成员。 修饰成员函数,修饰成员函数使得不需要生成对象就可以访问该函数,但是在 static 函原创 2022-10-29 00:50:48 · 171 阅读 · 0 评论 -
C++关键字union
说明联合(union)是一种节省空间的特殊的类,一个 union 可以有多个数据成员,但是在任意时刻只有一个数据成员可以有值。当某个成员被赋值后其他成员变为未定义状态。联合有如下特点: 默认访问控制符为 public 可以含有构造函数、析构函数 不能含有引用类型的成员 不能继承自其他类,不能作为基类 不能含有虚函数 匿名 union 在定义所在作用域可直接访问 union 成员 匿名 union 不能包含 protected 成员或 pr原创 2022-10-05 10:52:56 · 785 阅读 · 0 评论 -
extern “C“
被 extern 限定的函数或变量是 extern 类型的被extern "C"修饰的变量和函数是按照 C 语言方式编译和链接如果extern C加在实现上,会出现链接方式的冲突问题。extern "C"的作用是让 C++ 编译器将extern "C"声明的代码当作 C 语言代码处理,可以避免 C++ 因符号修饰导致代码不能和C语言库中的符号进行链接的问题。原创 2022-10-01 21:05:52 · 578 阅读 · 0 评论 -
inline内联函数
相当于把内联函数里面的内容写在调用内联函数处;相当于不用执行进入函数的步骤,直接执行函数体;相当于宏,却比宏多了类型检查,真正具有函数特性;不能包含循环、递归、switch 等复杂操作;在类声明中定义的函数,除了虚函数的其他函数都会自动隐式地当成内联函数。原创 2022-10-01 20:55:31 · 292 阅读 · 0 评论 -
C++关键字noexcept
C++17起: 规定noexcept是函数类型的一部分,并可以作为函数声明器的一部分出现。C++17前:noexcept 规定不是函数类型的一部分(正如同动态异常规定),而且只能在声明函数、变量、函数类型的非静态数据成员、指向函数指针、到函数的引用或指向成员函数的指针时,和声明类型正好是指向函数指针或到函数的引用的参数或返回类型时,作为 lambda 声明器或顶层函数声明器的一部分出现。它不能出现于 typedef 或类型别名声明。————————————————版权声明:本文为CSDN博主「丸子叮原创 2022-08-01 09:46:52 · 4345 阅读 · 0 评论 -
C++关键字volatile
volatile是类型修饰符,用于变量或函数参数声明,也可以限制非静态成员函数,指定被修饰的对象类型的读操作是副作用(因此读取不能被随便优化合并,适合映射I/O寄存器等) a. 当读取一个变量时,为提高存取速度,编译器优化时有时会先把变量读取到一个寄存器中,以后再取变量值时,就直接从寄存器中取值。 b. 优化器在用到volatile变量时必须每次都小心地重新读取这个变量的值,而不是使用保存到寄存器里的备份。 c. volatile适用于多线程应用中被几个任务共享的变量。.........原创 2022-08-01 00:05:31 · 387 阅读 · 0 评论 -
C++关键字const和mutable
在下面的例子中,fun()是一个const函数,即一般情况下它不能修改成员变量,但它可以修改成员变量x,这就是mutable关键字的作用原创 2022-08-01 00:04:31 · 292 阅读 · 0 评论 -
C++关键字const与constexpr
const和constexpr。深入剖析了它们的特性与区别,const在限制变量修改方面发挥关键作用,提升程序的稳定性和可维护性。而constexpr则在编译时求值的场景中表现出色,为程序的性能优化带来新的可能。通过实际代码示例和详细的解释,帮助读者透彻理解这两个关键字,以便在 C++编程中更加得心应手地运用。原创 2022-07-30 00:24:45 · 256 阅读 · 0 评论 -
C++关键字decltype
decltype 的类型推导并不像 auto 从变量声明的初始化表达式获得变量的类型,而总是以一个普通表达式作为参数,返回该表达式的类型,而且 decltype 并不会对表达式进行求值。原创 2022-07-30 00:17:22 · 601 阅读 · 0 评论 -
lambda表达式
lambda是一种定义匿名函数对象的简洁方式,可以接受参数、存储状态、返回值以及跨越多行。lambda表达式可提高C++编程速度和效率。1. Lambda表达式语法定义1.1. Lambda表达式示例Lambda有很多叫法,有Lambda表达式、Lambda函数、匿名函数,本文中为了方便表述统一用Lambda表达式进行叙述。 ISO C ++标准官网展示了一个简单的lambda 表示式实例:#include <algorithm>#include <cmath>原创 2022-02-03 16:38:16 · 1777 阅读 · 0 评论 -
C++关键字decltype
decltype是C++11新增的一个关键字,和auto的功能一样,用来在编译时期进行自动类型推导。引入decltype是因为auto并不适用于所有的自动类型推导场景,在某些特殊情况下auto用起来很不方便,甚至压根无法使用。原创 2021-08-18 00:12:55 · 347 阅读 · 0 评论 -
C++范围解析运算符::
分类全局作用域符(::name):用于类型名称(类、类成员、成员函数、变量等)前,表示作用域为全局命名空间 类作用域符(class::name):用于表示指定类型的作用域范围是具体某个类的 命名空间作用域符(namespace::name):用于表示指定类型的作用域范围是具体某个命名空间的使用int count = 0; // 全局(::)的 countclass A {public: static int count; // 类 A 的 count(A::cou原创 2021-08-17 23:10:14 · 781 阅读 · 1 评论 -
C++关键字volatile
volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。volatile 关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素(操作系统、硬件、其它线程等)更改。所以使用 volatile 告诉编译器不应对这样的对象进行优化。原创 2021-08-17 22:46:21 · 252 阅读 · 0 评论 -
C++关键字const
1. 作用修饰变量,说明该变量不可以被改变; 修饰指针,分为指向常量的指针和指针常量; 常量引用,经常用于形参类型,即避免了拷贝,又避免了函数对值的修改; 修饰成员函数,说明该成员函数内不能修改成员变量。2. 使用// 类class A{private: const int a; // 常对象成员,只能在初始化列表赋值public: // 构造函数 A() { }; A(int x) : a(x) { };原创 2021-08-17 22:36:08 · 141 阅读 · 0 评论 -
C++关键字deprecated
指示声明有此属性的名字或实体被,即允许但因故不鼓励使用。利用 deprecated声明,可以将函数重载的特殊形式指定为已弃用,而 pragma 形式适用于函数名称的所有重载形式。利用 deprecated声明,可以指定在编译时显示的消息。该消息的文本可以来自宏。只能使用 deprecatedpragma 将宏标记为已弃用。原创 2021-06-18 18:57:24 · 7103 阅读 · 0 评论 -
C++11标识符:override和final
C++ 多态行为的基础:基类声明虚函数,派生类声明一个函数覆盖该虚函数。在C++11之前,没有一个强制的机制来标识虚函数在派生类中正确被重写。原创 2021-01-21 18:15:01 · 462 阅读 · 4 评论