return -1,0语句 |
尚未結案
|
小丫123
初階會員 發表:85 回覆:62 積分:29 註冊:2004-08-31 發送簡訊給我 |
|
wyndog
資深會員 發表:7 回覆:362 積分:348 註冊:2004-10-12 發送簡訊給我 |
在 C 裡面的 return 不僅是傳回值,也是結束這個函式的意思
而在 Delphi 裡,result 僅僅只是指傳回值而已
所以一行的 return -1/0; 要改成二行:
result := -1; exit;int *cnt 在這裡是傳址呼叫(Call by Address) 所以,*cnt=label-L_Base; 這一段的目的 只是要讓函式可以得到傳回值而已 相當於在 Delphi 裡,呼叫的參數宣告成 var cnt: integer; 至於那個 return 0 or -1 的目的 只是為了知道這個函式有沒有 執行成功 我覺得,去了解程式在做什麼比單純的翻譯會更好 |
小丫123
初階會員 發表:85 回覆:62 積分:29 註冊:2004-08-31 發送簡訊給我 |
reptile,谢谢您,您的解释让我受益非浅,可是我还是有些地方不明白
int labeling(byte *image_in,byte *image_out,int *cnt)应该是一个function():integer; 那它的返回值应该就是0,或者-1了是吧! if(..) {return -1; label } 如果改成result:=-1;exit;//跳出条件,那下面的label:=label 1;就不能执行了呀?研二的女生 發表人 - 小丫123 於 2005/04/05 09:14:29 |
wyndog
資深會員 發表:7 回覆:362 積分:348 註冊:2004-10-12 發送簡訊給我 |
引言:對,它的返回值不是 0 就是 -1 不過,它的幾個參數,image_in、imageout、cnt 都可以改變 也就是說,這裡以 cnt 為例,呼叫前跟呼叫後,會得到不同的值 也就是我先前所說 Call by address 的例子int labeling(byte *image_in,byte *image_out,int *cnt)应该是一个function():integer; 那它的返回值应该就是0,或者-1了是吧! 引言:是的,return -1; 就跳出去了,後面的 label ; 就不做了 我也不曉得為什麼後頭還要加個 label ;if(..) {return -1; label } 如果改成result:=-1;exit;//跳出条件,那下面的label:=label 1;就不能执行了呀? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |