我最近在自学SCL,可是这方面有资料太少,就一份电子版的说明,而且是英文的,由于我的E文实在是太差,看得很吃力,似懂非懂。有很多问题不明白,请教SCL方面的高手:
在SCL里的指针怎么用?我看资料好象说是只能定义为形参,那是什么意思?
比如我用SCL编了一个FC,里面有形参定义
VAR_INPUT
IN:POINTER;
END_VAR
那使用这个参数时有何限制,还有如何得到对应的实参所属的数据块号,并打开它!?比如我使用一个FC来调用该FC2:
FC2(IN:=P#DB1.DBX0.0);
还有我试着编了一个FC,想用它来把一个字节的数转为ASCII的值(即两个字节),程序如下:
FUNCTION FC2:VOID
VAR_INPUT
IN:BYTE;
END_VAR
VAR_OUTPUT
OUT:WORD;
END_VAR
VAR_TEMP
N0:INT;
N1:BYTE;
END_VAR
BEGIN
FOR N0:=1 TO 2 DO
N1:=IN;
IF N0=1 THEN
N1:=SHR(IN:=N1,N:=4);
ELSE
N1:=N1 AND B#16#0F;
END_IF
IF N1 N1:= N1+B#16#30;
ELSE
N1:= N1+B#16#37;
END_IF
IF N0=1 THEN
OUT:=SHL(IN:=N1,N:=4);
ELSE
OUT:=OUT OR N1;
END_IF
END_FOR
END_FUNCTION
可是编译总通不过,而且那个错误诊断也讲得不太明白,我稍稍微改一个字,错误诊断就变了很多,到底我错在那里!?