混淆了typedef的用法

时间:2014-03-27 08:41:57

标签: c++ c

我遇到了以下代码:

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是什么类型的?

3 个答案:

答案 0 :(得分:4)

这是一个长度为WP_MAX_COUNT_STR的数组,其中包含wchar_t个字符串,每个字符串的长度为WP_STR_MAX_LEN

答案 1 :(得分:2)

data的类型是wchar_t类型的2D数组。

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];

答案 2 :(得分:1)

让我简单解释一下typedef

typedef string FiveStrings[5];

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

现在您可以使用以下新类型名称

FiveStrings countries = { "Ghana", "Angola", "Togo",

                          "Tunisia", "Cote d'Ivoire" };