如何用汇编实现strcpy+strlen的功能(拷贝一个字符串并返回拷贝的长度)?
需要实现一个函数拷贝字符串并且返回拷贝的长度,c语言代码如下:
size_t copy_string2(char* destination, const char* source)
{
if (!source || !destination)
return 0;
size_t length = strlen(source);
strcpy(destination, source);
return length;
}
估计上面的代码对source做了2次scan,不知道能否用汇编实现一次scan同时完成拷贝和求长度的任务。c/C++的另一种实现能做到,用汇编怎么让他更快一些?请高手赐教:)
size_t copy_string(char* destination, const char* source)
{
if (!source || !destination)
return 0;
char* start_position = destination;
do
{
*destination++ = *source++;
} while(*source);
return destination-start_position;
}