64,654
社区成员
发帖
与我相关
我的任务
分享
// 37楼,前面我回得太急,得罪了,也说错了一些东西,请多多包函。
int strlen(char *p) //恕我眼拙,实在看不出这函数有什么好的地方。
{
if(p==NULL) //看得怪眼熟的
return -1; //看得怪眼熟的
_asm xor ebx,ebx //在有的编译器里,ebx被在下面的while(*p++)占用了
_asm xor eax,eax ;//画蛇添足,有何用处?
while(*p++) //在有的编译器里,ebx在这里被占用了,可能会导致ebx的值不正确
{
_asm {inc ebx} //循环了多少次,有何效率可言?
}
_asm mov eax,ebx ;//不明白什么意思
//函数返回了什么?
}
//也许编译器的不同,我又说错了什么,还请多多包函。
#include<stdio.h>
int strlen(char *p)
{
if(p==NULL)
return -1;
asm mov dx, p
while(*p++)
;
asm sub p, dx
return p-1;
}