我知道如何使用 typedef 来定义新类型(标签)。
例如,typedef unsigned char int8
意味着您可以使用“int8”来声明 unsigned char 类型的变量。
但是,我无法理解以下语句的含义:
typedef unsigned char array[10]
这是否意味着数组是 unsigned char[10] 类型的?
在代码的其他部分,这种类型被用作函数参数:
int fct_foo(array* arr)
有没有人熟悉这个说法?
我知道如何使用 typedef 来定义新类型(标签)。
例如,typedef unsigned char int8
意味着您可以使用“int8”来声明 unsigned char 类型的变量。
但是,我无法理解以下语句的含义:
typedef unsigned char array[10]
这是否意味着数组是 unsigned char[10] 类型的?
在代码的其他部分,这种类型被用作函数参数:
int fct_foo(array* arr)
有没有人熟悉这个说法?
这是否意味着数组是类型
unsigned char[10]
?
将“of”替换为“another name for the”,您就有了100% 正确的陈述。Atypedef
为类型引入了一个新名称。
typedef unsigned char array[10];
声明array
为类型的另一个名称unsigned char[10]
,数组 10 unsigned char
。
int fct_foo(array* arr)
sayfct_foo
是一个函数,它接受一个指向 10 数组的指针unsigned char
作为参数并返回一个int
.
如果没有typedef
,那将写为
int fct_foo(unsigned char (*arr)[10])
它的作用是创建一个数据类型,称为10 个大小的对象array
的固定长度数组。unsigned char
这是一个类似的 SO question,询问如何做一个固定长度的数组,并且更深入地解释了 typedef 格式。