最佳答案
我一直认为在 C 语言中,所有的变量都必须在函数的开头声明。我知道在 C99中的规则与 C + + 中的规则相同,但是 C89/ANSI C 的变量声明放置规则是什么呢?
以下代码使用 gcc -std=c89
和 gcc -ansi
成功编译:
#include <stdio.h>
int main() {
int i;
for (i = 0; i < 10; i++) {
char c = (i % 95) + 32;
printf("%i: %c\n", i, c);
char *s;
s = "some string";
puts(s);
}
return 0;
}
c
和 s
的声明是否应该在 C89/ANSI 模式下导致错误?