使用typedef为数组声明一个新类型
我知道如何使用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”替换为“ 另一个名称”,并且您有100%正确的声明 。 typedef
为类型引入了新名称。
typedef unsigned char array[10];
声明array
为unsigned char[10]
类型的另一个名称,10个unsigned char
数组。
int fct_foo(array* arr)
fct_foo
是一个函数,它将一个指向10个unsigned char
数组的指针作为参数并返回一个int
。
没有typedef
,那就写成了
int fct_foo(unsigned char (*arr)[10])
它的作用是使一个名为array
的数据类型是一个固定长度的数组,其大小为10个unsigned char
对象。
这是一个类似的SO问题 ,询问如何进行固定长度数组,并更深入地解释typedef格式。