我是C++的新手,正在尝试一些东西。我遇到了以下代码:
#include<iostream>
void t(){
std::cout << "func t()" << std::endl;
}
int main(int argc, char **argv) {
int t(); //declaration of function
std::cout << t() << std::endl;
}
输出结果为"func t()\n6295712"。我关注的是t()函数打印的随机(?)数字。
我的问题是:为什么可以声明返回类型不同的函数(这里是int而不是void),而没有任何错误?这不是违反类型安全性的行为吗,因为我从未定义过返回类型为“int”的函数?
使用的编译器:gcc(Ubuntu 4.8.4-2ubuntu1~14.04.1)4.8.4
func t()\n6295680
,这与仅有的6295712
不同。你的程序真的只打印了那个数字吗? - Marcus Müller