枚举和 Fwrite 困境
Enum & Fwrite Dilemma
当我遇到 enum 和 fwrite[= 的问题时,我正在编写一个从 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
),编号从 0
到 ou2bufsize-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()
返回的 THandle
,l
是要写入的字节数。
当我遇到 enum 和 fwrite[= 的问题时,我正在编写一个从 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
),编号从 0
到 ou2bufsize-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()
返回的 THandle
,l
是要写入的字节数。