typedef如何在内部工作(在编译器级别)?

时间:2015-07-28 19:35:05

标签: c typedef

我最近在接受采访时遇到过这个问题。他们问我什么时候使用Typedef创建新的用户定义类型(比如typedef unsigned char CHAR)内部会发生什么?

1 个答案:

答案 0 :(得分:0)

在内部不会发生任何事情,因为只有编译器的信息才为其他类型引入了一些别名。

根据C标准(6.7.8类型定义)

  
      
  1. ... typedef声明不会引入新类型,只会引入所指定类型的同义词。
  2.   

考虑到C中与C ++相反的情况,没有用户定义类型的概念。 C标准不使用这样的术语。

要定义用户类型,您必须指定其行为。 C语言不允许指定类型的行为。:)

至于“内存级别”,唯一的结果是你可以忘记这个typedef别名所代表的实际类型。:)