[英]how typedef works internally (at compiler level)?
我最近在一次采访中遇到了这个问题。 他们问我,当我们使用 Typedef(如 typedef unsigned char CHAR)创建新的用户定义类型时,内部会发生什么?
在内部不会发生任何事情,因为它只是编译器的信息,您为另一种类型引入了一些别名。
根据 C 标准(6.7.8 类型定义)
- ... typedef 声明不会引入新类型,而只是所指定类型的同义词。
考虑到与 C 中的 C++ 相反,没有用户定义类型这样的概念。 C 标准没有使用这样的术语。
要定义用户类型,您必须指定其行为。 C 语言不允许指定类型的行为。:)
至于“内存级别”,那么唯一的后果是您可以忘记这个 typedef 别名表示的实际类型。:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.