【发布时间】:2014-05-15 11:34:34
【问题描述】:
重新定义是否意味着我们正在尝试定义一个已经定义的实体。这个问题出现在以下代码示例中:
int a=5;
int main()
{
int a=3;//redefinition? I think no, because `int a` denote an entity different from the global "a"
}
还有一个例子:
int foo(){ return 1; }
int main()
{
int foo();
int a=foo();//Now a is 1
}
我们不能在main() 函数体中定义刚刚声明的foo() 函数,但如果可以的话,它会重新定义吗?
【问题讨论】:
-
@Deduplicator 我不明白重新定义是什么意思。我只是在想。我正在努力理解...
-
请注意,在 C 中,declaration 和 definition 之间存在差异。
标签: c++ redefinition one-definition-rule