【发布时间】:2014-12-08 14:53:15
【问题描述】:
我见过一些创建结构的 C 代码,并且在结构内有许多数组。其中一些数组的大小为 1。那么为什么要麻烦把它做成一个数组呢?为什么不只是一个int?
我说的是这样的事情:
struct Foo
{
uint8_t Bar[1];
uint32_t BigBar[4];
};
为什么不直接做呢
struct Foo
{
uint8_t Bar;
uint32_t BigBar[4];
};
【问题讨论】:
-
如果数组位于结构的末尾,它可能是flexible array members
-
也许这个问题已经在这里回答了 SO stackoverflow.com/questions/6390331/…
-
@Shansingh 那是完全不同的东西。
-
如果提供了一些上下文,这可能是一个有趣的问题(程序员这样做可能有很多原因,也许她/他只是喜欢这种风格)。目前它无法回答,应该关闭。
-
@HuStmpHrrr 我在问它是否写成
#define ONE 1然后uint8_t Bar[ONE];
标签: c