【发布时间】:2014-11-07 17:37:48
【问题描述】:
以下 C89 是否合法?
void f(a)
char a[sizeof &f];
{
}
我的想法是肯定的,因为在任何块范围之外声明的标识符的范围在声明符结束后立即开始并延伸到翻译单元的末尾。因此,“f”的范围包括声明列表。
"gcc -pedantic -Wall" 接受它。 "clang -pedantic -Wall" 拒绝它,lcc 也是如此。
【问题讨论】:
标签: c gcc clang standards-compliance c89