使用typedef为数组声明一个新类型

use*_*592 13 c

我知道如何使用typedef来定义新类型(标签).

例如,typedef unsigned char int8意味着您可以使用"int8"来声明unsigned char类型的变量.

但是,我无法理解以下声明的含义:

typedef unsigned char array[10]
Run Code Online (Sandbox Code Playgroud)

这是否意味着数组的类型为unsigned char [10]?

在代码的其他部分,此类型用作函数参数:

int fct_foo(array* arr)
Run Code Online (Sandbox Code Playgroud)

有没有人熟悉这个陈述?

Dan*_*her 29

这是否意味着数组类型unsigned char[10]

替换"的""的另一个名字为"和你有一个100%正确的说法.A typedef为类型引入了新名称.

typedef unsigned char array[10];
Run Code Online (Sandbox Code Playgroud)

声明array为类型的另一个名称unsigned char[10],数组为10 unsigned char.

int fct_foo(array* arr)
Run Code Online (Sandbox Code Playgroud)

say fct_foo是一个函数,它将一个10的数组指针unsigned char作为参数并返回一个int.

没有typedef,那就写成了

int fct_foo(unsigned char (*arr)[10])
Run Code Online (Sandbox Code Playgroud)

  • 它意味着该函数内`fct_foo`,阵列将具有与其一起使用`(*ARR)[I]`,例如,要获得在所述阵列中的`i`th字符. (6认同)