【发布时间】:2012-08-03 19:41:53
【问题描述】:
为什么一种语言允许隐式声明函数和无类型变量是明智的?我知道 C 是旧的,但允许省略声明并默认为 int()(或在变量的情况下为 int)对我来说似乎并不那么理智,即使在当时也是如此。
那么,为什么最初引入它?它真的有用吗?它实际上(仍然)使用吗?
注意:我意识到现代编译器会给你警告(取决于你传递给它们的标志),你可以禁止这个特性。这不是问题!
例子:
int main() {
static bar = 7; // defaults to "int bar"
return foo(bar); // defaults to a "int foo()"
}
int foo(int i) {
return i;
}
【问题讨论】:
-
该功能已从语言中删除。不幸的是,许多编译器仍然默认接受它。
-
这不是一个真正的问题吗?说真的,这是怎么回事?
-
我同意,这是一个真实(而不是无趣)的问题。但我认为这是题外话和/或没有建设性。我们都只能猜测为什么。
-
我认为这里更适合。等待它再次打开。
-
“我们都只能猜测为什么。” -- 熟悉历史或愿意做研究的人,做的远比猜想的好。
标签: c history language-design implicit-declaration