是否有一个非常早期的C"标准",其中以下对于二维数组的定义是合法的?
int array[const_x, const_y];
int array2[2, 10];
Run Code Online (Sandbox Code Playgroud)
我偶然发现了一些旧的遗留代码,它使用这个(并且只有这个)符号来表示多维数组.代码是,除了这个奇怪的,完全有效的C(并且令人惊讶地设计得很好).
由于我没有找到这之间的任意转换宏[,]和[][],我认为这不是恶作剧的形式,似乎从前原文作你的奥尔德C编译器,其接受了这一符号.还是我错过了什么?
编辑:如果它有帮助,它适用于嵌入式微控制器(atmel).根据我的经验,嵌入式编译器并不是标准兼容的众所周知的.
目前的编译器的代码按预期工作(只要它可以从函数的名称,描述和变量猜测),如果我改变这一切[,]到[][].
第一个正式标准是ANSI X3.159-1989,第一个非正式标准通常被认为是Kernighan&Ritchie的第一版.这些都不允许使用逗号来声明二维数组.
它似乎是您的特定编译器的特性(一种使其符合非标准的编译器,因为它会改变某些符合程序的语义).
| 归档时间: |
|
| 查看次数: |
249 次 |
| 最近记录: |