首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

函数的类型声明有关问题,挺有意思的

2012-03-20 
函数的类型声明问题,挺有意思的!看这段代码#includeiostream.h shu(int&a,int&b){inttemptempaabb

函数的类型声明问题,挺有意思的!
看这段代码
#include   "iostream.h "
shu(int   &a,int   &b)
{
int   temp;
temp=a;
a=b;
b=temp;
}
add(int   a,int   b)
{
a+=5;
b+=2;
return   a+b;
}
void   main()
{
        int   a,b;
        cin> > a;
        cin> > b;
        shu(a,b);
        cout < <a < <ends < <ends < <ends < <b < <endl;
        cout < <endl < <add(a,b) < <endl;
}
很明显函数shu()是void类型的,因为没有返回值,add则有返回值不需要void。可是该代码在TC和VC中全都可以编译通过且可以正常运行,这我就搞不明白了,明明没有返回值的函数必须声明为void型?怎么这个不用呢?
想请大家帮我看看!

[解决办法]
没有写返回值类型的话,那么他的返回值默认是int类型的.
[解决办法]
不是合法的C++代码。

[解决办法]
因为VC6检查不严格,你用VS2005试试看
[解决办法]
VC6是98年的产品,那个时候C++ 标准还没有出来,所以不遵守标准很正常
VS2005是前两年的产品了,对C++标准支持的好,这种不合法的 写法是有问题的.
[解决办法]
至于TC,呃这个差不多20年了
[解决办法]
编译时候有一处警告,编译通过只能说明程序能够运行,但能运行程序不一定是正确的
只是编译器给默认加的,能够通过则说明是允许的,就当承认接受,不要总是相信书本是对的
[解决办法]
Turbo C++ Explorer
http://www.turboexplorer.com/
还可以了
推荐用 vs2005 express版
[解决办法]
vs2005 express 是免费版本,学习C++ 来说足够用了
功能最多的是Team Suite版
[解决办法]
没有返回值类型就是错误语法!
[解决办法]
warning C4508: 'shu ' : function should return a value; 'void ' return type assumed

这段代码并没有输出任何东西啊,这就是最大的问题
[解决办法]
vc6比2005的好处就是安装方便,占资源少,老用户多
[解决办法]
void关键字,就是一种数据类型如同int等一样。没有类型的类型就是void类型。

热点排行