fillchar,fillword,filldword,fillbyte用途举例
fillchar 是按照字节填充
fillword ,filldword是按照需要长度的字节来填充
fillchar
Pascal(一种类似C语言的编程语言)的一个内存块赋值函数。
定义:Procedure FillChar ( Var X; Count : Longint; Value :Char or Byte);
意为:对一个Char类型的数组X进行Count次赋值,当Value为Char类型时,直接赋值;若Value为Byte类型时,将Value作为AscII赋值给每个单元。被引申为:对一个内存块,每8个二进制位赋值Value,赋值Count次,长度为:Count*8个二进制位。
FillChar是一种很常用的函数,大部分赋值都是用FillChar完成的,因为对内存的块赋值,比使用循环要快得多。
根据引申意,我们举个例子:
首先定义:
Var
a : array[1..10000] ofarrtype;
当arrtype为integer时:
FillChar(a,sizeof(a),0);//效果是:将数组清空,所有元素赋值为0
FillChar(a,sizeof(a),1);//效果是:将数组每一个元素都赋值为257,解释如下:Integer占16个二进制,使用FillChar后,每一个字节被赋值为1,所以每一个元素的二进制为:0000000100000001,即257
fillchar:
数组清0fillchar(a,sizeof(a),0);
数组赋值-1fillchar(a,sizeof(a),$FF);
fillbyte:
通常用fillbyte来给元素类型为byte的数组赋初值。
数组赋值255fillbyte(a,sizeof(a),255);
注:a数组为byte类型
fillword:
和fillbyte相仿.但每次赋的是一个值为Value的双字节无符号整数(word类型),所以每2个字节赋一次值,而fillbyte是每一个字节就赋一次值。
数组赋值32767 fillword(a,sizeof(a) div 2,32767);
注:div 2不能漏
filldword:
与fillbyte相仿。Dword意思是占用4个字节的整型,具体来讲可以是常用的longint类型。
数组赋值maxlongintfilldword(a,sizeof(a) div 4,2147483647);