我最近在接受采访时遇到过这个问题。他们问我什么时候使用Typedef创建新的用户定义类型(比如typedef unsigned char CHAR)内部会发生什么?
答案 0 :(得分:0)
在内部不会发生任何事情,因为只有编译器的信息才为其他类型引入了一些别名。
根据C标准(6.7.8类型定义)
- ... typedef声明不会引入新类型,只会引入所指定类型的同义词。
醇>
考虑到C中与C ++相反的情况,没有用户定义类型的概念。 C标准不使用这样的术语。
要定义用户类型,您必须指定其行为。 C语言不允许指定类型的行为。:)
至于“内存级别”,唯一的结果是你可以忘记这个typedef别名所代表的实际类型。:)