一个未申报的变量如何输出一个值
在我的函数sumofrange
中,我决定输出一个未声明的变量来学习C++中不同的编译器错误。令我惊讶的是,time
似乎输出1,即使它没有在任何地方声明。一个未申报的变量如何输出一个值
#include <iostream>
#include <cmath>
using namespace std;
int sumOfrange(int lower, int upper){
cout<<time<<endl;
return ((((pow(upper,2)) + upper) - ((pow(lower,2)) + lower))/2);
}
int main(){
cout<<sumOfrange(7,100)<<endl;
return 0;
}
您输出在<ctime>
头部声明一个std::time函数的地址。您也正在使用using namespace std;
声明。为什么应该避免在this SO post中解释。根据编译器和平台的不同,如果在Windows上使用VC++编译器,则可能会得到类似于(0x)00DC52E0
的十六进制输出,如果在Linux上使用g ++编译器,则可能会得到十六进制输出1
。
使用'using namespace std;'的另一个例子是微妙的陷阱。 –
不确定一个函数是否有值。无论如何,它的函数 – user463035818
的地址我相信它被投射到一个'bool'并返回为1.'cout Persixty
这就是为什么命名空间很重要,而'使用命名空间标准;'有时是危险的。 – ForceBru
你应该阅读[this](https://stackoverflow.com/questions/1452721/why-is-using-namespace-std-considered-bad-practice) – NathanOliver
顺便说一句,没有这样的事情作为“未申报的变量”。如果它是未声明的,你不能使用它 – user463035818