【发布时间】:2018-11-13 02:38:34
【问题描述】:
我正在一台 linux 机器上学习 C++。我刚试过“int i();”声明一个函数,但我忘了定义它。但令我惊讶的是,这段代码可以编译并输出1。我感到很困惑。我尝试了“int I{};”,它仍然编译没有错误。请帮忙解释一下。提前致谢。
//test1.cpp
#include <iostream>
int main(void)
{
int i{};
std::cout << i << std::endl;
return 0;
}
g++ test1.cpp
./a.out
Output is: 0
//test2.cpp
#include <iostream>
int main(void)
{
int i();
std::cout << i << std::endl;
return 0;
}
g++ test2.cpp
./a.out
Output is : 1
【问题讨论】:
-
如果您不在代码中的任何位置调用该函数,那很好。否则,您将在链接时收到错误,因为链接器将无法找到函数定义
-
感谢您的快速回复。输出呢?为什么输出是1?还有“int i{};”。这是什么意思?
-
@RaymondChen 感谢您推荐的文章。那么“int i {};”呢?这个语法有什么作用?
标签: c++