前言
typedef 是一个c/c++关键字用来声明类型别名,既然它只是一个类型别名,那么我们就不能对其进行类型扩展。
typedef 限制
不可类型扩展
下面使用会编译报错是错误用法
typedef int Int;
long Int a = 1;
const 与 typedef
给 typedef 加 const 相当于给类型本身加const ,而不是简单的组合,如下我们给下面的代码加const,简单的组合起来就像 const char* ,但是实际上则是给指针本身加了const,使 str 成为 char* const 类型
typdef char* PointerChar;
const PointerChar str = "hello";
str++;
typedef 不可与除类型指定符之外的指定符组合
指定符就是c/c++关键字,typedef 只能与 类型指定符组合,不可与其他指定符组合,指定符分类如下
- typedef
- inline
- friend
- constexpr
- 存储类指定符(register 、static 、 thread_local (C++11 起)、 extern 、 mutable )
- 类型指定符 (各种内置类型、class、struct、cv限定符、typename) </