Delphi的函数,在Result后还是会继续往下执行,
而C++的return后函数就跳出了,等于是Delphi的Exit;例如Delphi如下Function ABCD:Integer;
begin
Result := 0; //Delphi执行到这里后,还会继续往下执行的
xxx
xxx
xxx
if xxx>bbb then
begin
Result := 1;
Exit;
end;
end;例如C++如下int ABCD()
{
return 0; //C++执行到这里后,就不继续往下执行了,直接Exit了...
xxx
xxx
xxx
if (xxx!=qqq)
{
return 1;
}
}看明白了吗?因为学习写驱动,所以得用下C++,但是觉得C++的函数好奇怪,
难道不能像Delphi那样预先设置返回值吗(Result)?
我知道可以在函数尾部加返回值,但是我喜欢在函数入口加返回值,
因为函数中间有时候直接EXIT了.
而C++的return后函数就跳出了,等于是Delphi的Exit;例如Delphi如下Function ABCD:Integer;
begin
Result := 0; //Delphi执行到这里后,还会继续往下执行的
xxx
xxx
xxx
if xxx>bbb then
begin
Result := 1;
Exit;
end;
end;例如C++如下int ABCD()
{
return 0; //C++执行到这里后,就不继续往下执行了,直接Exit了...
xxx
xxx
xxx
if (xxx!=qqq)
{
return 1;
}
}看明白了吗?因为学习写驱动,所以得用下C++,但是觉得C++的函数好奇怪,
难道不能像Delphi那样预先设置返回值吗(Result)?
我知道可以在函数尾部加返回值,但是我喜欢在函数入口加返回值,
因为函数中间有时候直接EXIT了.
C++可以这样
int ABCD()
{
if(xxx!=qqq)
{
return 0; //硬要一开始就返回,可以做判断。
}
xxx
xxx
xxx
if (xxx!=qqq)
{
return 1;
}
return 2;
}
{
int ret = 0;
if(xxx!=qqq)
{
ret = xxx;
return ret; //硬要一开始就返回,可以做判断。
}
xxx
xxx
xxx
if (xxx!=qqq)
{
ret = yyy;
return ret;
}
return ret;
}这样楼主就开心了吧
{
int ret = 0;
if(xxx!=qqq)
{
ret = xxx;
return ret; //硬要一开始就返回,可以做判断。
}
xxx
xxx
xxx
if (xxx!=qqq)
{
ret = yyy;
return ret;
}
return ret;
}黑色部分就定死,以后楼主就直接用这个模板,以后就用修改红色的那部分
vb、asp,只能以函数名作为准备好的返回值,如果函数改名了,要替换代码里的函数名!
pascal也支持以函数名作为准备好的返回值,但是这样容易有歧义:
funname=funname+1; //第二个funname是 准备好的返回值 还是 递归调用(如果无参数)?
int retVal=0;
return retVal;