C中未知的typedef实现

时间:2015-06-09 14:42:20

标签: c typedef

我对这个例子感到困惑:

typedef int32_t voltage_dc_estimate_t[1];

一切都很好但是类型定义末尾的[1]让我感到困惑。有人可以帮我理解这种情况吗?

3 个答案:

答案 0 :(得分:3)

[1]表示1元素的数组。

voltage_dc_estimate_t是一种类型为1的{​​{1}}元素数组。

答案 1 :(得分:1)

要了解发生了什么,您必须按部分细分代码

typedef int32_t voltage_dc_estimate_t[1];

typedef声明一个名为voltage_dc_estimate_t的新类型,它是一个大小为1的int32_t数组。

请注意,虽然这是合乎逻辑的意义,但这样做是一个非常糟糕的主意,因为你最好只做

typedef int32_t voltage_dc_estimate_t;

如果您只是想保存1个元素。

答案 2 :(得分:0)

要理解typedef声明,首先要了解没有声明的声明:

int32_t voltage_dc_estimate_t[1];

这将声明一个uint32_t长度1的数组,名为voltage_dc_estimate_t

typedef的效果是名称voltage_dc_estimate_t将代表该变量的类型,而不是实际变量。因此,在您的示例中,它表示长度为int32_t的{​​{1}}数组。