- 论坛徽章:
- 0
|
提供一个简单的RPG中调用C函数,计算LOG10的例子。
自己想的做法,不知道好不好,望大侠指正!
DSPF:(TST10RD)
A DSPSIZ(24 80 *DS3)
A PRINT(*LIBL/QPRINT)
A CA03
A R FMT10
A 2 18' 入力値: '
A D1 8Y 2B 2 30TEXT(' 入力値 ')
A EDTCDE(1)
A 4 18' 戻り値: '
A D2 8Y 5O 4 30TEXT(' 戻り値 ')
A EDTCDE(1)
RPGLE:(TST10RLE)
H DEBUG
D****************************************************************
D* I N F O R M A T I O N
D****************************************************************
FTST10RD CF E WORKSTN
D*
D SP1 S 8P 2 INZ(0) EXPORT
D SP2 S 8P 5 INZ(0) EXPORT
D*
C****************************************************************
C** M A I N S Y O U R I
C****************************************************************
C DO *HIVAL
C EXFMT FMT10
C KC SETON LR
C KC RETURN
C Z-ADD D1 SP1
C CALLB 'PGMC'
C Z-ADD SP2 D2
C ENDDO
C:(TST10C)
#include <stdio.h>
#include <math.h>
#include <decimal.h>
extern decimal(8,2) SP1;
extern decimal(8,5) SP2;
void PGMC()
{
SP2 = log10(SP1);
}
作法:
1、CRTDSPF FILE(XXXLIB/TST10RD) SRCFILE(XXXLIB/QDSPSRC)
2、CRTRPGMOD MODULE(XXXLIB/TST10RLE) SRCFILE(XXXLIB/QRPGSRC)
3、CRTCMOD MODULE(XXXLIB/TST10C) SRCFILE(XXXLIB/QRPGSRC)
4、CRTPGM PGM(XXXLIB/TST10RLE) MODULE(XXXLIB/TST10RLE XXXLIB/TST10C)
5、CALL TST10RLE |
评分
-
查看全部评分
|