💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## 一.typedef 1. 使用方法 typedef 后面接一个类似变量定义的语句,定义后这个语句的标识符就是别名。 ```c++ typedef int INTEGER; //别名为INTEGER INTEGER a;//a为int型 typedef int INT_ARRAY[10];//别名为INT_ARRAY INT_ARRAY b;//b为int[10]型,即含10个元素的数组 typedef int (*ROW_PTR)[10];//别名为ROW_PTR ROW_PTR c;//c为(*)[10]型,即行指针 typedef int (*FUNC_PTR)(int, int);//别名为FUNC_PTR FUNC_PTR d;//d为int (*)(int, int)型,即两个参数为int,返回值也是int型的函数指针 ``` 2. 用处 + 类型别名 + 简化复杂类型声明 ## 二.\[11+\][$]别名声明 1. 使用方法 `using 别名 = 原类型名;` ```c++ //函数的定义 int get_max(int a, int b) { return a > b ? a : b; } //main函数内的语句 using CompareFun = int (*)(int, int); CompareFun max = get_max; return 0; ``` ## 三.指针、常量与类型别名 类型别名并不是简单将别名替换为它本来的样子。 ```c++ typedef char* pstring; const pstring name = "Foo"; ``` 代码分析: + `pstring` 是一种指针类型,而 `const` 则表示这个指针本身是常量。 + 若把 `pstring` 换成 `char*` ,那么数据类型是 `const char` `*` 便只是声明符的一部分,结果得到的是一个指向 `const char` 的指针。