Function Num(S1, S2:integer):integer;
var
S11, S12, S21, S22, S31, S32:integer;
begin
S11 := S1 and $FFFFFF;
S12 := (S1 and $7F000000) div $1000000;
If S1 < 0 Then S12 := S12 Or $80;
S21 := S2 and $FFFFFF;
S22 := (S2 and $7F000000) div $1000000;
If S2 < 0 Then S22 := S22 or $80;
S32 := S12 + S22;
S31 := S11 + S21;
If (S31 and $1000000)=1 Then S32 := S32 + 1;
Num := (S31 And $FFFFFF) + (S32 and $7F) * $1000000;
If (S32 And $80)=1 Then Num := Num Or $80000000; //提示出错:not enough actual parameters
end;
var
S11, S12, S21, S22, S31, S32:integer;
begin
S11 := S1 and $FFFFFF;
S12 := (S1 and $7F000000) div $1000000;
If S1 < 0 Then S12 := S12 Or $80;
S21 := S2 and $FFFFFF;
S22 := (S2 and $7F000000) div $1000000;
If S2 < 0 Then S22 := S22 or $80;
S32 := S12 + S22;
S31 := S11 + S21;
If (S31 and $1000000)=1 Then S32 := S32 + 1;
Num := (S31 And $FFFFFF) + (S32 and $7F) * $1000000;
If (S32 And $80)=1 Then Num := Num Or $80000000; //提示出错:not enough actual parameters
end;
var
S11, S12, S21, S22, S31, S32, p:integer;
begin
S11 := S1 and $FFFFFF;
S12 := (S1 and $7F000000) div $1000000;
If S1 < 0 Then S12 := S12 Or $80;
S21 := S2 and $FFFFFF;
S22 := (S2 and $7F000000) div $1000000;
If S2 < 0 Then S22 := S22 or $80;
S32 := S12 + S22;
S31 := S11 + S21;
If (S31 and $1000000)=1 Then S32 := S32 + 1;
p := (S31 And $FFFFFF) + (S32 and $7F) * $1000000;
If (S32 And $80)=1 Then p := p Or $80000000; //提示出错:not enough actual parameters
Result := p;
end;试下这个。Num := (S31 And $FFFFFF) + (S32 and $7F) * $1000000;
这句中Num在等号左侧,被看做返回值,是正确的不提示错误。If (S32 And $80)=1 Then Num := Num Or $80000000;
这句中第一个Num在等号左侧被当做返回值,不会提示错误,第二个Num在等号右侧被当做了函数调用,所以提示not enough actual parameters,即函数参数不够。
没有符给参数.