C++之1---main函数中省略返回语句

(1).主函数声明了返回整型int,则需在main函数{}中用“return 0 ”返回值;

          C++标准规定:main函数可以省略返回语句,等效于返回0。

       注意:
        1. main函数的返回类型是int, 不是void或者其他类型。
        2. 该规则仅仅对main函数适用。
        3. 对其他函数,如果省略返回值, 将得到一个警告
        4. 应该避免3的情况。

 #include "iostream"
int main()
{
 std::cout<<"the first program!";
 return(0);                         //可以省略,运行结果一致

}

 

一个合法的最小化的完整C++程序如下:

int main() {}



 

(2).如果你没有什么可返回的值,那你就把函数返回类型声明为void 空型    

  新标准下,C,C++要求main函数必需返回值,用void就不行了。C++下返回值必须为int

#include "iostream"
void main()
{
 std::cout<<"the first program!";
}

 

  二、2. 省略的确切含义

同时,标准中的用语是很考究的:
“当控制到达main结束处时没有遇到return语句,效果与返回0相同”。

即是说,标准规定的是“对省略return的分支,认为返回0”。
同时,标准也允许其他分支含有返回语句。
如下:

int main(int argc,char* []) {
    
switch (argc)
    {
    
case 1:
        
// error, should passing argument
        return -1;
        
// parse arguments
    default:
    
case 3// parser argv[2]
    case 2// parser argv[1]
        ;
    }
    
// do some work
    
// control reaches here
}


没有输入命令行参数时, 返回一个错误。
其他情况,当控制达到main的结尾处时,效果同return 0;

        二、3. 对于其他函数,没有这种“优待”
如:

int not_main(int argc) {
    
if (argc<=1)
        
return -1;
}
int main(int argc,char* []) {
    
return not_main(argc);
}


not_main无疑将得到一个警告。
程序在没有输入命令行参数时的返回值将无法预知

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值