由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请问strcpy()和memcpy()的写法问题
相关主题
a MS interview question about C++akamai电面面经,攒rp
Facebook phone screen电面可耻的失败了
这个拷贝构造函数有什么问题?how to access a const char array in a function
用C设计Stack的interface,要求支持各种数据类型。题目: string pattern matching w/ wildcard (.*)
写程序时的一个小问题?请问这样写程序错了吗?
怎么检查极端情况?分享A公司面经
请帮忙看段code,为什么过不了。用 c 实现的字符串 permutation,求批评指点
fb面试题【转】请教一道c/c++题 (转载)
相关话题的讨论汇总
话题: memcpy话题: strcpy话题: null话题: strdest话题: ptrdest
进入JobHunting版参与讨论
1 (共1页)
r****o
发帖数: 1950
1
我看到的标准strcpy()函数通常都是如下写法:
char *strcpy(char *strDest, const char *strSrc)
{
assert ((strDest!=NULL)&&(strSrc!=NULL));
char *strDest2=strDest;

while ((*strDest2++=*strSrc++)!='\0')
{
}
return strDest;
}
我看到的标准memcpy()函数通常都是如下写法:
void *memcpy(void *ptrDest, const void *ptrSrc, size_t size)
{
assert((ptrDest!=NULL)&&(ptrSrc!=NULL);

void *ptrDest2=ptrDest;
void *ptrSrc2=ptrSrc;
while (size-- >0)
*ptrDest2++=*ptrSrc2++;
return ptrDest;
}
我不明白的是为什么memcpy()函数里面的pt
u**s
发帖数: 50
2
1. I think saving "ptrSrc" in memcpy has no special purpose. Someone just
uses one extra local variable.
2. In real system, those codes (strcpy & memcpy & ...) usually will never
get chance to run because there are much faster arch-dependent assembly
versions for all those functions. Search memcpy/strcpy/memmove in linux
kernel tree/glibc you will find the real codes.
And, I roughly remember in the comments at the beginning of those codes
Linus wrote something like, "The following implementati

【在 r****o 的大作中提到】
: 我看到的标准strcpy()函数通常都是如下写法:
: char *strcpy(char *strDest, const char *strSrc)
: {
: assert ((strDest!=NULL)&&(strSrc!=NULL));
: char *strDest2=strDest;
:
: while ((*strDest2++=*strSrc++)!='\0')
: {
: }
: return strDest;

1 (共1页)
进入JobHunting版参与讨论
相关主题
请教一道c/c++题 (转载)写程序时的一个小问题?
昨天的F家店面怎么检查极端情况?
问一个memory allocate/release的问题请帮忙看段code,为什么过不了。
请教大家一道关于c++的面试题fb面试题【转】
a MS interview question about C++akamai电面面经,攒rp
Facebook phone screen电面可耻的失败了
这个拷贝构造函数有什么问题?how to access a const char array in a function
用C设计Stack的interface,要求支持各种数据类型。题目: string pattern matching w/ wildcard (.*)
相关话题的讨论汇总
话题: memcpy话题: strcpy话题: null话题: strdest话题: ptrdest