b***i 发帖数: 3043 | 1 一个代码如下
status func1(...) {
...
logic block1, blah blah
if (...) {
return BAD;
}
if (...) {
return BAD;
}
...
logic block1 end
logic block 2
-- here --
}
修改代码发现新增功能需要在 -- here -- 那里加入和logic block 1同样的内容。为
了不重复,可以把这一部分写成函数。但是,那么多return BAD;在函数里怎么办?如
何让他们从func1返回?而条件不满足则在func1里面继续logic block 2? |
c*******v 发帖数: 2599 | 2 写成函数,然后加个 char isCheckBAD的输入参数?
isCheckBAD = 1则是你上半截代码,包括那些return BAD;
不然就是下半截, skip那些return BAD。
总之你有两个情况,需要1bit分析信息,然后分支出去。
【在 b***i 的大作中提到】 : 一个代码如下 : status func1(...) { : ... : logic block1, blah blah : if (...) { : return BAD; : } : if (...) { : return BAD; : }
|
l*********s 发帖数: 5409 | |
H***3 发帖数: 821 | 4 没有完全明白你想干嘛,下面这样不行吗?
status func1(...) {
if (func2() != GOOD)
return BAD;
logic block 2
if (func2() != GOOD)
return BAD;
}
status func2() {
blah blah
if (...)
return BAD;
else
return GOOD;
}
【在 b***i 的大作中提到】 : 一个代码如下 : status func1(...) { : ... : logic block1, blah blah : if (...) { : return BAD; : } : if (...) { : return BAD; : }
|
h****e 发帖数: 2125 | 5 status func1(...){
if(func2(...)==BAD){
return BAD;
}
func3();
}
status func2(...){
func3();
if(...){
return BAD;
}
if(...){
return BAD;
}
logic block 2
}
void func3(){
logic block 1
}
【在 H***3 的大作中提到】 : 没有完全明白你想干嘛,下面这样不行吗? : status func1(...) { : if (func2() != GOOD) : return BAD; : logic block 2 : if (func2() != GOOD) : return BAD; : } : status func2() { : blah blah
|