主题:fillchar
贺天行宝
[专家分:2300] 发布于 2006-02-27 20:57:00
谁有fillchar详细用法、限制等等
有用的必加分
回复列表 (共12个回复)
11 楼
maxumi [专家分:2200] 发布于 2006-09-21 07:40:00
fillchar(x,y,z)的作用是:
从数组x(或变量x)的第1个字节开始,连续y个字节赋值为z.
而 sizeof() 函数是取某变量或数组占用的内存长度.
在integer/longint数组上用的时候, fillchar会出问题: 下面是原因
例如x是integer数组, fillchar(x,sizeof(x),7)将integer的2个字节都赋值为7, 则数值其实是256*7+7=1799.
一个integer占用16位2进制位, 7化为2进制等于00000111, 所以x数组的每个变量变成了0000011100000111(2进制), 化为10进制为1799.
fillchar是给每一个字节都赋值,integer占用2字节, 应该用fillword, 它和fillchar差不多, 只是每2个字节赋值一次, longint数组请用filldword, filldword是每4个字节赋值一次.
当然,用fillword和filldword的前提是: 你用的是Free Pascal. Turbo Pascal不支持这两个过程.
脸皮厚的人请求+30~~~~~
12 楼
贺天行宝 [专家分:2300] 发布于 2006-09-21 21:27:00
如果可以加100分,我也会给你。
我来回复