|
发表于 2004-12-29 22:10:33
|
显示全部楼层
Post by yytoday
我在win下有VC编写一C++程序text.cpp并可以正常运行,如下:
#include<iostream.h>
void main()
{
long m;
cin>>m;
for(int i=2;i<m;i++)
if(m%i==0)
break;
if(m==i)
cout<<"true\n";
else
cout<<"false\n";
}
但在linux下用gcc -o text text.cpp编译时,怎么有这样的提示:
text.cpp:3: `main' must return `int'
text.cpp: In function `int main(...)':
text.cpp:9: name lookup of `i' changed for new ISO `for' scoping
text.cpp:6: using obsolete binding at `i'
不知道这是什么原因
谢谢
1. void main() 不是标准的 main 函数原型。标准的原型之一是:
int main(void);
2. 按照标准的定义,for 循环变量的生命周期只及于 for 循环内部,就如同在
for 循环大括号块内定义的变量一样,所以变量 i 在 for 循环之后就不能使用
了。 |
|