【文章內(nèi)容簡介】
CU/MAIN HBRCCU/FUNC1) 編譯完成。(2)、沒有返回值,使用CALLP調(diào)用(注意加粗部分的調(diào)用)庫名:hbrccu文件:exam成員:aaaaDresult s 10i 0 inz(*zero) Da s 10i 0 Db s 10i 0 Dfunction pr Da 10i 0 value Db 10i 0 value Dresult 10i 0 C eval a=10 C eval b=10 C callp function(a:b:result)C result dsply C EVAL *INLR=*ON C RETURN 庫名:hbrccu文件:exam成員:aaaaHnomain Dfunction pr Da 10i 0 value Db 10i 0 value Dresult 10i 0 Pfunction B export Dfunction pi Da 10i 0 value Db 10i 0 value Dresult 10i 0 C eval result=a+b C return Pfunction E 運行function后顯示20.注意:(1)在加粗斜體部分,如果改成如下:Dresult 10i 0 value 則表明是值傳遞,在function中調(diào)用改變不影響其外部的值。運行后顯示0. 注意value是值傳遞。(2)export 表明定義的這個子過程可以被外部調(diào)用。假如沒有export關(guān)鍵字,在執(zhí)行CRTPGM PGM(HBRCCU/FUNCTION) MODULE(HBRCCU/MAIN HBRCCU/FUNC1) 報錯。 算數(shù)函數(shù)或操作碼 addcl0n01factor1+++++++opcodeamp。extfactor2+++++++result++++++++len++d+hiloeqc 1 add sum sum c sum dsply c*相當于cl0n01factor1+++++++opcodeamp。extfactor2+++++++result++++++++len++d+hiloeqc eval sum=sum+1c sum dsply subc sum sub 1 sum c sum dsply c*相當于c eval sum=sum1c sum dsplymultc 3 mult 2 sumc sum dsply c*相當于c eval sum=3*2c sum dsplydivc 12 div 3 sumc sum dsply c*相當于c eval sum=12/3c sum dsply%rem()取余c eval count=%rem(13:3)c count dsply c*相當于c 14 div 3 sum c mvr countc count dsplyc*注意:mvr只能用在div操作碼的后面,不能用在eval sum=14/3的后面,編譯報錯move和movelMove 自右向左取值賦值給int,并右靠齊Movel 自左向右取值賦值給int,并左靠齊Dchar1 s 1a inz(*blank) Dint s 2s 0 inz(*zero ) C eval char1 = 39。139。 C movel char1 int C int dsply C eval *inlr=39。139。 C return 此時字符串實際長度小于數(shù)字長度,movel時,此時int顯示DSPLY 10Dchar1 s 1a inz(*blank) Dint s 2s 0 inz(*zero ) C eval char1 = 39。139。 C move char1 int C int dsply C eval *inlr=39。139。 C return 此時字符串實際長度小于數(shù)字長度,move時,此時int顯示DSPLY 1Dchar1 s 2a inz(*blank) Dint s 2s 0 inz(*zero ) C eval char1 = 39。1239。 C move char1 int C int dsply C eval *inlr=39。139。 C return 此時字符串實際長度等于數(shù)字長度,movel和move時,此時int都顯示DSPLY 12Dchar1 s 3a inz(*blank) Dint s 2s 0 inz(*zero ) C eval char1 = 39。12339。 C movel char1 int C int dsply C eval *inlr=39。139。 C return 此時字符串實際長度大于數(shù)字長度,movel時,此時int顯示DSPLY 12move時,此時int顯示DSPLY 23當int向char移動時也遵循這個結(jié)果.函數(shù)比較一、 字符函數(shù)da s 30a inz(*blank)db s 20a inz(*blank)dc s 50a inz(*blank) 字符串連接c eval a=39。gaodianhua39。 c eval b=39。 is a good boy39。 c eval c=a+b c c dsply c*c的值dsply為 gaodianhua is a good boy c eval a=%trim(a)+%trimr(b)c a dsplyc*c的值dsply為 gaodianhua is a good boy 掃描字符串c eval pos=%scan(39。oo39。:a:1)c if pos = 0 c 39。not found39。 dsply c else c pos dsply c endif %check(parator:base{:start}) : 在base串中查找第一個不在parator中存在的字符的位置,如果base中的所有字符均在parator中存在,則返回0。%checkr(parator:base{:start}):在base串中查找最后一個不在parator中存在的字符的位置,如果base中的所有的字符均在prator中存在,則返回0。%SUBST(字符串:開始位置{:長度})返回自變量字符串的一部分。它也可用作帶 EVAL 操作碼的賦值的結(jié)果%STR(基指針{:最大長度})(右邊)%STR(基指針:最大長度)(左邊)%alloc(number)Dealloc ptr1%realloc(ptr:number)Number必須是不帶小數(shù)的非浮點數(shù)。%STR既可以用來獲取以 NULL 結(jié)束的字符串(當在表達式的右邊使用時,此函數(shù)返回第一個參數(shù)指向的數(shù)據(jù),直至(但不包括)指定長度中找到的第一個空字符(x39。0039。)。可在字符表達式