【发布时间】:2017-02-08 17:42:27
【问题描述】:
我有以下代码:
#include <stdio.h>
int main(void) {
typedef int new_type[];
new_type Number[8];
return 0;
}
编译器 (Gcc- 4.9.2) 显示错误:数组类型的元素类型不完整。
我有一些问题:
1、new_type通过typedef定义的C90标准是否接受?在这种情况下,new_type 是一种数据类型,它定义了一个数组,其中包含未定义的元素数量或一个指针 指向int 的数组?
2.如果我们保留typedef int new_type[];这一行,我们如何定义new_type类型的变量?
感谢您的帮助。
【问题讨论】:
-
Number应该有多大?它有 8 个元素,但这些元素是大小不定的数组。无法分配。 -
注意:
typedef在本地范围内不是很有用,而未确定大小的数组-typedef有什么用途非常值得怀疑。 -
为什么不使用
typedef int my_int; my_int a[8];? (在文件范围内有typedef)。