与typedef用法混淆

Confused with typedef usage

本文关键字:用法 typedef      更新时间:2023-10-16

我遇到以下代码:

typedef wchar_t     str_param_t[WP_STR_MAX_LEN];

然后:

typedef struct work_t
{
    u32_t           val1;
    u32_t           val2;
    str_param_t     data[WP_MAX_COUNT_STR];
} work_t;

我的问题是data是什么类型的?

它是一个长度为WP_MAX_COUNT_STR的数组,包含每个长度为WP_STR_MAX_LEN的基于wchar_t的字符串

data的类型为wchar_t类型的二维数组。

typedef wchar_t     str_param_t[WP_STR_MAX_LEN];
str_param_t     data[WP_MAX_COUNT_STR];

这等于:

wchar_t data[WP_STR_MAX_LEN][WP_MAX_COUNT_STR];

让我简单解释一下typedef

typedef string FiveStrings[5];

通过定义typedef string FiveStrings[5], FiveStrings可以用来声明一个包含5个字符串的数组,每个字符串都是string类型(char *)。

现在可以像下面这样使用上面的新类型名称

FiveStrings countries = { "Ghana", "Angola", "Togo",
                          "Tunisia", "Cote d'Ivoire" };