编程小技巧

    返回首页    发表留言
本文作者:李德强
          技巧十八:main函数的返回值
 
 

        今天跟大家分享的小技巧是关于main函数返回值的。我们知道在C/C++中main函数有一个int类型的返回值,其实main函数的返回值表示的是一个状态,即main在执行过程中是否出现了错误。如果main正常运行结束它的值为0,如果运行出现错误则返回一个非0的值。在编程的过程中我们也常常会编写一些通过返回值来判断是否出错的函数。我们知道对于条件表达式来说非0表示真,0表示假。然而判断一个函数的返回值是,通常0表示正常运行,非0表示出现错误。为什么要这样设定呢?直接使用非0表示真,用0表示假不可以吗?

        我们先来看看这样一个表达式的结果:

char ch = 7;
printf("%d\t%d\t%d\t%d\n", ch , !ch, !!ch, !!!ch);

        运行结果为:

7	0	1	0

        也就是说非0的数在做非运算时结果为0,而对0做非运算的结果是1。

        现在我们来谈谈为什么在函数的运行状态判断时为什么用0表示正常,用非0表示错误:因为一个函数如果执行成功了,我们不需要做其它的处理,只需要知道它执行成功即可;而对于函数执行错误时通常还要知道出现的是什么样类型的错误。也就是说一个函数执行成功,只返回一个0, 而一个函数执行错误我们需要它返回1、2、3……-1、-2、-3之类的状态值以便进行错误处理。在判断一个函数执行的结果时直接使用if判断即可:

int st = myfunc();
if(!st)
{
	//执行正常
	return 0;
}
if(st)
{
	//执行错误
	return st;
}

        在判断函数执行状态时,成功的状态只有一个,而出错则可能有很多种情况,这时就可以直接使用if (myfunc())来进行判断了,而不需要写成显式的值比较运算if (myfunc() == 1)。

 

        今天的小技巧你学会了吗?

 

 

    返回首页    返回顶部
  看不清?点击刷新

 

  Copyright © 2015-2018 问渠网 辽ICP备15013245号