20231126 - 查漏补缺
关键字
所有关键字 (字母顺序排序)
cppauto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while
auto
auto
自动变量, 用于自动推导变量类型auto
仅适用于局部变量
const
- 声明常量
- 用法:
const <type> <var_name>[ = <init_value>];
#define
#define
定义标识符常量- 格式:
#define <def> <code>
- 注意: 常量名一般全部大写
- 定义宏示例:
cpp// 定义 MIN 以返回 x, y 中较小那个 #deinfe MIN(x, y) (x > y ? y : x) MIN(1, 2) // 返回 1 MIN(-514, -114) // 返回 -514
enum
enum
定义枚举常量- 用法
cppenum <name> { <item01>, // 默认为 0 <item02> // +1 ... }
default
default
switch 语句的 default
do
do
与while
基本相同
register
- 计算机存储或暂时存储的位置 (快到慢, 造价高到低)
- 寄存器
- 高速缓存 (高频内存)
- 内存
- 硬盘like
- 用法:
register <type> <var_name>[ = <init_value>]
- 计算机存储或暂时存储的位置 (快到慢, 造价高到低)
signed
- 有符号数 (可省略)
static
- 静态变量, 在栈销毁时不会被销毁
- 仅限当前文件使用, 不能被
extern
修饰, 也不能修饰函数
(static
改变了函数的外部链接属性为内部连接, 致使原来每个函数均具有的可跨文件使用的外部链接属性, 致使编译报错) - 用法
cppvoid add() { static int a = 0; // 如果多次调用 add, a 会一直加 int b = 0; // 非静态的 b 每次都是 0+1=1 a ++; b ++; }
extern
- 想外部暴露变量或内容, 相当于 js 的
export
- 与
static
不兼容
- 想外部暴露变量或内容, 相当于 js 的
typedef
- 可以自定义类型别名
- 用法:
typedef <...type> <alias>;
- 例子:
typedef unsigned int uInt;
-> 将 uInt 定义为无符号整型的别名, 使用其声明变量时与原来的类型相同
union
union
联合体/共用体- 其允许在相同的内存空间存储不同的数据类型 (有点动态类型语言那味儿了?
转义字符
转义字符 | 解释 |
---|---|
\\ | 用于表示一个反斜杠, 以免进一步被转义 (已经被转义了, 打了4个) |
\a | 警告字符, 发出蜂鸣 |
\b | 退格符, 将光标移到前一个字符前 |
\f | 进纸符, 光标进入下一页开头 |
\n | 换行符 |
\r | 回车符 |
\t | 水平制表符 (Tab) |
\v | 垂直制表符 |
\<d><d><d> | 表示三个十六进制所对应的字符; 如 \130 表示 X |
\x<d><d> | 表示两个十六进制所对应的字符; 如 \x30 表示 0 |