我对这个例子感到困惑:
typedef int32_t voltage_dc_estimate_t[1];
一切都很好但是类型定义末尾的[1]
让我感到困惑。有人可以帮我理解这种情况吗?
答案 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}}数组。