请帮忙把如下代码译成C语言!(100分)

  • 主题发起人 主题发起人 sleepy
  • 开始时间 开始时间
S

sleepy

Unregistered / Unconfirmed
GUEST, unregistred user!
俺不太懂pascal中的record,请帮忙把下列代码翻译成C,谢谢!!
第一段:
Type
RGB=record r,g,b:byte;
end;
TBuf1=array[0..95,0..70]of RGB;
TBuf2=array[0..70,0..95]of RGB;
RGBArray=array[0..100]of RGB;
PRGBArray=^RGBArray;
PBuf=^TBuf1;
var
P1:PRGBArray;
Buf2:TBuf2;
oldpf:TPixelFormat;
第二段:
Ord()是什么东西?
第三段:
Move(Buf2,p1^,SizeOf(Buf2));
Buf2[70-y,x]:=P1^[y];
这里的p1^是指针?在C中怎样写?

 
Type RGB=record r,g,b:byte;
end;
:typedef struct {
char r,g,b;
}RGB

TBuf1=array[0..95,0..70]of RGB;
TBuf2=array[0..70,0..95]of RGB;
RGBArray=array[0..100]of RGB;
PRGBArray=^RGBArray;
:RGB * Variable
PBuf=^TBuf1;
:RGB ** Variable
var P1:PRGBArray;
Buf2:TBuf2;
oldpf:TPixelFormat;
:RGB Buf2[95][70];/*2-dimensional array*/
:RGB * P1;/*pointor to RGB array*/

Ord()used to get the order of a character
Move(Buf2,p1^,SizeOf(Buf2));
:将长度为SizeOf(Buf2))的数据从p1所指的地址移到Buf2所指的地址
Buf2[70-y,x]:=P1^[y];
:将一维数组y处的内容赋给Buf2[70-y,x]
 
1.
struct RGB
{
short r, g, b;
};
typedef struct RGB TBuf1[95][70];
typedef struct RGB TBuf2[70][95];
typedef struct RGB RGBArray[100];
typedef RGBArray *PRGBArray;
typedef TBuf1 *PBuf;
PRGBArray P1;
TBuf2 Buf2;
//TPixelFormat oldpf;不知是何类型
2.Ord( x )
求给定有序表达式值在所属有序类型中的数字排序.对整型表达式,这就是表达式的值
对其他有序类型,Ord函数返回该表达式作为一个整型解释时的物理位置上的表示.
Ord的结果总是整型值.
3.Buf2[70-y][x] = *P1[y];
 
to JJLEI:
您写的我怎么看不懂?
 
record 和 STRUCT 差不多
ORD 就是前导
 
多人接受答案了。
 
To茶叶蛋:
pascal的语法比较严格,定义type是为了使用方便;c中的语法比较灵活
定义了RGB之后,可以用结构数组,不必再事先定义别的了;c中支持多维指针,
不过使用时要小心。RGB ** Variable 定义了一名为Variable的指针,写的
时候比较仓促,可能写错位置了,不好意思!!
 
后退
顶部