免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5412 | 回复: 5
打印 上一主题 下一主题

strncpy和sprintf的效率 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-11-09 20:22 |只看该作者 |倒序浏览

  1. char desc[1024];
  2. const char* GetText(...)
  3. {
  4.   ...
  5. }

  6. strncpy(desc, GetText(), sizeof(desc) -1);
  7. sprintf(desc, "%s\n", GetText());
复制代码

问题1  如果做200000次循环,那个函数更快。
问题2  为什么有时strncpy拷贝返回的字符串出错(这样用好像有点怪怪的),而sprintf却没有。
问题3 到底memcpy和strncpy有和不同。

论坛徽章:
0
2 [报告]
发表于 2006-11-10 10:05 |只看该作者
1 应该是strncpy快些吧。如果sprintf就只有一个参数,速度到底慢多少,没有实验过。
2 具体程序?
3 你man 查看两者区别。

论坛徽章:
0
3 [报告]
发表于 2006-11-10 10:14 |只看该作者
反正printf系列函数都没有速度可言

论坛徽章:
0
4 [报告]
发表于 2006-11-10 10:23 |只看该作者
两者用在不同的场合,不能相提并论。如果用来直接拷贝特定的字符串,当然是strcpy效率高,因为除了字符转移,它不做其它的事情。

至于两者之间的速度差多少,可以这样考虑:在奔四机上,strcpy比sprintf大概快几十纳秒,用C语言需要至少循环万次以上才能看到明显的效果。不过这仅限于拷贝特定字符串,串中不能包括格式字符,否则测试就失去意义了。

论坛徽章:
0
5 [报告]
发表于 2006-11-10 11:43 |只看该作者
sprintf我总是用来做转换的
DaYuTou 该用户已被删除
6 [报告]
发表于 2006-11-10 12:08 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP