首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

关于StrPCopy解决方案

2012-09-08 
关于StrPCopyprocedure TForm1.Button1Click(Sender: TObject)var arrChar: array[0..255] of Charbegin

关于StrPCopy
procedure TForm1.Button1Click(Sender: TObject);
var arrChar: array[0..255] of Char; 
begin
StrPCopy(arrChar, 'Come on, baby!');////////
ShowMessage(arrChar);
arrChar := 'aabbddddd';////
ShowMessage(arrChar);
end;
第一种字符串复制到字符数组中,和第二种直接赋值有何区别?

[解决办法]
都是复制内存,对本例来讲,arrChar := 'aaaaa';效率更高直接用MOV或REP MOVSB/SW/SD 完成了
StrPCopy(arrChar, 'Come on, baby!');
这个是调用函数,最后用Move函数完成,虽然最终是REP MOVSD/MOVSB完成,但是前面的判断指令太多了,效率上没后者快
[解决办法]
对于字符容量足够的时候, 2者没多大区别, 但是你试试把arrchar的长度缩小到1个的时候, 你就知道strpcopy是不安全的了
[解决办法]

探讨
对于字符容量足够的时候, 2者没多大区别, 但是你试试把arrchar的长度缩小到1个的时候, 你就知道strpcopy是不安全的了

热点排行