枚举和 Fwrite 困境

Enum & Fwrite Dilemma

当我遇到 enumfwrite[= 的问题时,我正在编写一个从 C 到 Delphi 的程序以便制作它的 x64 版本20=].

enum{ ou2bufsize=1<<16 };
byte ou2buf[ou2bufsize];

而且,

fwrite( ou2buf, 1,l, h );

你能告诉我这些是什么以及它们是如何在 Delphi 中声明的吗???

enum{ ou2bufsize=1<<16 }; 定义一个名为 ou2bufsize 的常量,其值为 1 shl 16(1 向左移动 16 位)。

byte ou2buf[ou2bufsize]; 定义了一个 ou2bufsize 字节的数组(称为 ou2buf),编号从 0ou2bufsize-1.

fwrite( ou2buf, 1,l, h );ou2buf 的前 l 个字节写入输出句柄 h.

enum{ ou2bufsize=1<<16 }; 是一个常量,名为 ou2bufsize,值为 65536(1 向左移动 16 位)。 Delphi 等价于:

const
  ou2bufsize = 1 shl 16;

byte ou2buf[ou2bufsize]; 是一个固定大小的字节数组,名为 ou2buf,包含 ou2bufsize 个数组元素。 Delphi 等价于:

ou2buf: array[0..ou2bufsize-1] of byte;

fwrite( ou2buf, 1,l, h ); 正在从 ou2buf 的起始内存地址向 h 表示的文件写入 l 个 1 字节大小的项目。 Delphi 等价于:

FileWrite(h, ou2buf[0], l);

其中 h 是由 FileCreate()FileOpen() 返回的 THandlel 是要写入的字节数。