今天我偶然定义了一个二维数组,其中一维的大小为0,但是我的编译器没有抱怨.我发现以下内容表明这是合法的,至少在gcc的情况下:
但是,我对这个用法有两个问题:
首先,这被认为是良好的编程习惯吗?如果是这样,那么我们何时应该在现实世界中使用它?
其次,我定义的数组是二维的,一维的0大小.这和一维情况一样吗?例如,
int s[0]
int s[0][100]
int s[100][0]
Run Code Online (Sandbox Code Playgroud)
它们在内存和编译器中都是一样的吗?
编辑:回复Greg:我使用的编译器是gcc 4.4.5.我对这个问题的意图不依赖于编译器,但是如果有任何编译器特定的怪癖也会有用:)
提前致谢!