今天笔试的一道题目,大家帮忙看下。

达尔文 2009-12-09 09:00:26
C语言的。
function (char *a ,char *b ,int len){
switch(len & ox7){
while(len>7){
len-=8;*b++ = *a++;
case 7:*b++ = *a++;
case 6:*b++ = *a++;
case 5:*b++ = *a++;
case 4:*b++ = *a++;
case 3:*b++ = *a++;
case 2:*b++ = *a++;
case 1:*b++ = *a++;
}

}

}
question: what does the function do?

我是凭借自己记忆写下来的,我是弄java的。望各位帮忙解答下。
...全文
139 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
KSVINSON 2009-12-09
  • 打赏
  • 举报
回复
这个函数什么作用,
10楼的兄弟,如果是内存拷贝,这样实现,为什么会有效率,Cache是8的倍数?跳转没见少多少,
能仔细说下嘛??
达尔文 2009-12-09
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 z569362161 的回复:]
你的问题难回答,这是个子函数。

谁知道主函数传进来什么?
[/Quote]
两个参数 char *a char *b 根据上面老兄的回答 我理解传进来两个char数组。其它的还有别的吗?
z569362161 2009-12-09
  • 打赏
  • 举报
回复
你的问题难回答,这是个子函数。

谁知道主函数传进来什么?
达尔文 2009-12-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 mstlq 的回复:]
引用 9 楼 xzl1203 的回复:
引用 8 楼 mstlq 的回复:
switch和while反了……
这个就是memecpy……
拷贝内存中的内容……
效果等同于
C/C++ codefunction (char*a ,char*b ,int len)
{while(len-->0)*b++=*a++;
}

写成switch case是为了将循环展开,提高运算速度

非常感谢您。
我非常想知道 这个方法调用之后的运行结果是什么。
这个应该可以调用吧?
function('a' , 'b' , 3);


不可以……
通常用法是
char a[6]="hello";
char b[6]="dd";
function(a,b,6);
[/Quote]
理解了!!原来是个char数组。
mstlq 2009-12-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xzl1203 的回复:]
引用 8 楼 mstlq 的回复:
switch和while反了……
这个就是memecpy……
拷贝内存中的内容……
效果等同于
C/C++ codefunction (char*a ,char*b ,int len)
{while(len-->0)*b++=*a++;
}

写成switch case是为了将循环展开,提高运算速度

非常感谢您。
我非常想知道 这个方法调用之后的运行结果是什么。
这个应该可以调用吧?
function('a' , 'b' , 3);
[/Quote]

不可以……
通常用法是
char a[6]="hello";
char b[6]="dd";
function(a,b,6);
达尔文 2009-12-09
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 mstlq 的回复:]
switch和while反了……
这个就是memecpy……
拷贝内存中的内容……
效果等同于
C/C++ codefunction (char*a ,char*b ,int len)
{while(len-->0)*b++=*a++;
}

写成switch case是为了将循环展开,提高运算速度
[/Quote]
非常感谢您。
我非常想知道 这个方法调用之后的运行结果是什么。
这个应该可以调用吧?
function('a' , 'b' , 3);
mstlq 2009-12-09
  • 打赏
  • 举报
回复
switch和while反了……
这个就是memecpy……
拷贝内存中的内容……
效果等同于
function (char *a ,char *b ,int len)
{
while(len-- >0)
*b++=*a++;
}


写成switch case是为了将循环展开,提高运算速度
达尔文 2009-12-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zkw0302 的回复:]
你肯定写错啦,不合语法
[/Quote]
哦 我也是凭借记忆写出来的。您帮忙纠正一下。谢谢了
zkw0302 2009-12-09
  • 打赏
  • 举报
回复
你肯定写错啦,不合语法
达尔文 2009-12-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 freshui 的回复:]
switch 和 while 有没有写反了?
[/Quote]
没有写反 这点我记得。
芒果仔 2009-12-09
  • 打赏
  • 举报
回复
感觉像计算机二级的题目嘛,这么BT
freshui 2009-12-09
  • 打赏
  • 举报
回复
switch 和 while 有没有写反了?
达尔文 2009-12-09
  • 打赏
  • 举报
回复
楼上的哥们 能说的详细点不?
do_fork 2009-12-09
  • 打赏
  • 举报
回复
memcpy

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧