以下是引用voidx在2011-8-25 21:40:28的发言:
那里是声明。
你也不要不停的说别人不对,自己用 gcc 试试编译下面的代码,看看他给你的错误不就得了。
int i = 0;
int i = 0;
int main() {
int j, j, k = 0, k = 0;
return 0;
}
如下图
那里是声明。
你也不要不停的说别人不对,自己用 gcc 试试编译下面的代码,看看他给你的错误不就得了。
int i = 0;
int i = 0;
int main() {
int j, j, k = 0, k = 0;
return 0;
}
如下图
呵呵,真奇怪,既然这里的j没有赋值(是声明),为什么又不能重复写呢?而且gcc明确指出了这里是redefinition(重定义),那么这里到底是声明还是定义呢?你的论据能够证明你的观点么?
还有,拿编译器的行为,去说明C语言的规范和标准,是十分愚蠢的事情,只有中国应试教育下的人才会这么做。这就是我所谓的“经验主义”。
比如说,你没有《现代汉语词典》,而是参照网上的人说的话去理解一个人说的字句,在日常生活中当然是可以的。但是你觉得一个中文系的学生能这么说么?“昨天晚上我网友说酱紫,所以酱紫是xxxx的意思”,他们能在正经的语言讨论里面把这种话当作论据么?