PASCAL没怎么学,要将它翻成c程序,工作需要,我就晕了。望路过的大侠们不吝赐教。
procedure set_f9;                       
var face,i,s1,s2:word;
    i3,i4,i5,i6,f8f9:byte;
    ch:char;
begin
  inline($fa);
  port[$1f6]:=$e0;                       
   repeat                              
    f8f9:=port[$1f7];
   until (f8f9 div 128)=0;             
   port[$1f7]:=$f8;                     
   repeat                               
    f8f9:=port[$1f7];
   until (f8f9 div 128)=0;
   i6:=port[$1f6] mod 16;
   i6:=$e0+(i6 mod 16);                  
   i5:=port[$1f5];
   i4:=port[$1f4];
   i3:=port[$1f3];                         port[$1f6]:=i6;
   port[$1f5]:=i5;
   port[$1f4]:=i4;
   port[$1f3]:=i3;
   port[$1f2]:=00;                       
   port[$1f7]:=$f9;                     
   repeat                               
    f8f9:=port[$1f7];
   until (f8f9 div 128)=0;
  inline($fb);
end;
  1。我仔细看了程序(这只是PASCAL源代码的一个部分)其他部分也没定义port,我在c 中翻译时没定义就出错提示了,是不是定义了就可以了?P中的port是端口符号,c中定义为什么呢?
  2。在tc下编译又有报subscripting missing [ in function set_9。不明白。我有用[]的啊
  3。illegal character‘$'(0x24) in function set_f9  c中没有此符号?还是我输入有问题。应该不是后者,因为tc下shift+数字键4就出来那符号了。应该也不会没有吧,要不怎么翻成c 啊。
  哎~问题太多了,先问这么多吧,静侯侠音!

解决方案 »

  1.   

    是我表述的不够清楚,还是问的不是地方?
    在新手乐园贴过一天了,一个回复都没有哦。
    是我心急了吧,等ing……
      

  2.   

    3。illegal character‘$'(0x24) in function set_f9  c中没有此符号?还是我输入有问题。应该不是后者,因为tc下shift+数字键4就出来那符号了。应该也不会没有吧,要不怎么翻成c 啊。不是C中没这个符号,而是C中不允许那么用。不能把PASCAL 的数组那种用法在C里也 array[$2]这样用。不知道PASCAL里$起什么作用,直接去掉试试。
      

  3.   

    谢谢 whatsouta了。
    我会再试试,不过难道这程序里port[]是数组的意思?
    最近才接触pascal,感觉port[]是端口,网上查到$是单元符号,可是不知道到底是怎么一回事哦,
    它是对端口赋值了?
    怎么转化成c 呢?
    郁闷中……
    这几天没什么进展