Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 定义新数据类型时,数组类型的元素类型不完整_C_C89 - Fatal编程技术网

C 定义新数据类型时,数组类型的元素类型不完整

C 定义新数据类型时,数组类型的元素类型不完整,c,c89,C,C89,我有以下代码: #include <stdio.h> int main(void) { typedef int new_type[]; new_type Number[8]; return 0; } #包括 内部主(空){ typedef int new_type[]; 新的_类型编号[8]; 返回0; } 编译器(Gcc-4.9.2)显示错误:数组类型的元素类型不完整 我有一些问题: 1.C90标准是否接受通过typedef定义的新类型?在这种情况下,

我有以下代码:

#include <stdio.h>

int main(void) {
    typedef int new_type[];
    new_type Number[8];
    return 0;
}
#包括
内部主(空){
typedef int new_type[];
新的_类型编号[8];
返回0;
}
编译器(Gcc-4.9.2)显示错误:数组类型的元素类型不完整
我有一些问题:
1.C90标准是否接受通过typedef定义的新类型?在这种情况下,
new\u type
是一种数据类型,它定义了未定义元素数的数组或指向
int
数组的指针 2.如果我们保持行
typedef int new_type[]
,如何定义类型为
新类型的变量?
谢谢你的帮助

C90标准是否接受通过typedef定义的新类型?在本例中,new_type是一种数据类型,它定义了一个未定义元素数的数组或一个指向int?数组的指针

typedef本身不是问题,因为您可以定义不完整的类型(
typedef struct a_;s;
)。而且新的
类型确实和你想象的差不多

如果我们保持行
typedef int new_type[],如何定义新类型的变量

对于变量定义,变量的类型必须是完整类型,因此:

typedef int new_type[];
new_type Number = { 1, 2, 3 };
将导致
Number
成为大小为3的
int
数组。但是,您尝试将数字定义为大小为8的
int[]
数组(
int Number[8][];

但未指定大小的数组不能用于定义任何变量、数组或作为structure1的成员(不完整的类型不能用于这些目的)


1.除非是最后一个,否则允许使用灵活的数组成员(对其有许多限制)。

C90标准是否接受通过typedef定义的新类型?在本例中,new_type是一种数据类型,它定义了一个未定义元素数的数组或一个指向int?数组的指针

typedef本身不是问题,因为您可以定义不完整的类型(
typedef struct a_;s;
)。而且新的
类型确实和你想象的差不多

如果我们保持行
typedef int new_type[],如何定义新类型的变量

对于变量定义,变量的类型必须是完整类型,因此:

typedef int new_type[];
new_type Number = { 1, 2, 3 };
将导致
Number
成为大小为3的
int
数组。但是,您尝试将数字定义为大小为8的
int[]
数组(
int Number[8][];

但未指定大小的数组不能用于定义任何变量、数组或作为structure1的成员(不完整的类型不能用于这些目的)


1.除非是最后一个,否则允许使用灵活的数组成员(对其有许多限制)。

数字应该有多大?它有8个元素,但元素是大小不确定的数组。无法分配。注意:
typedef
在本地范围内不是很有用,而且大小不确定的数组-
typedef
的用途非常可疑。为什么不使用
typedef int my\u int;my_int a[8]?(在文件范围内有
typedef
Number
应该有多大?它有8个元素,但元素是大小不确定的数组。无法分配。注意:
typedef
在本地范围内不是很有用,而且大小不确定的数组-
typedef
的用途非常可疑。为什么不使用
typedef int my\u int;my_int a[8]?(在文件范围中有
typedef
),但如果我将其更改为
new_type Number={0}它构建成功,但编译器如何知道“Number”的实际大小?@TonyJ-因为您提供了数组初始值设定项(
{0}
)。它有1个元素(
0
),因此大小可以推断为1。但是如果我将其更改为
new_type Number={0}它构建成功,但编译器如何知道“Number”的实际大小?@TonyJ-因为您提供了数组初始值设定项(
{0}
)。它有1个元素(
0
),因此大小可以推断为1。