【发布时间】:2020-08-02 14:31:48
【问题描述】:
简单地说,如果我这样做:
typedef char arrayOne[10];
主要是:
char arrayTwo[10];
malloc(sizeof(arrayOne)) 会比malloc(sizeof(arrayTwo)) 占用更多内存吗?
或者换句话说;我使用 typedef 来保持代码更简单,但值得还是我应该忘记它,因为它使用了不必要的额外内存?
【问题讨论】:
-
不,同样大小...
-
@chux-ReinstateMonica 我担心可能会有一些额外的位来存储信息或编译器的东西
-
typedef 根本不分配任何内存(或引入开销);它只是为编译器提供一些信息以供您在实际定义一些变量时使用。
-
typedef只是添加一个类型的别名,它在编译器内部处理,在完成的可执行代码中不会看到类型别名的痕迹。 -
a typedef 是另一种类型的别名(从广义上讲)