免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234
最近访问板块 发新帖
楼主: OwnWaterloo
打印 上一主题 下一主题

替人发帖、替天行道:欲使用memset应当包含什么头文件? [复制链接]

论坛徽章:
0
31 [报告]
发表于 2012-04-22 12:03 |只看该作者
个人感觉C库里有些地方的安排有点别扭,不知道为什么。
memset放到string.h这个,从菜鸟的角度的确有些不够贴切,可能C库的实现者看待问题更本质。
看到这个帖子大神这么多,斗胆问一个类似的问题:
个人感觉,C库的文件函数FILE*参数位置定义的不够好,有的是第一个参数,有的是最后一个参数。一致性不好。
int fscanf(FILE *stream, const char *format, ...)
char *fgets(char *s, int n, FILE *stream)
相反,Unix/Linux的API就要一致得多。
另外,觉得stat/fstat/lstat这个参数设计也怪怪的。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
32 [报告]
发表于 2012-04-22 12:09 |只看该作者
回复 31# Reallsc

下面的回答全是我的猜测,不可当真。

char *fgets(char *s, int n, FILE *stream) 是为了与gets达成某种程度的一致。
gets(s,n);
fgets(s,n,f);
前面的参数相同,末尾添加一个。

但这种一致不能用到scanf与fscanf上去。
因为它们是变长参数,于是就加到前面去了。

而且上面这两种增加还不一定是同一个人做的,但代码已经这么写成了,最后标准化时也会考虑到现有代码的。
于是就……


这也说明了一个问题:既然标准化时会照顾到现有代码 —— 比如O_CREAT就直接被标准化了。
那么为什么memory.h没有被标准化?
也许即使是早些年代,这头文件用的人都不多。

论坛徽章:
0
33 [报告]
发表于 2012-04-22 12:33 |只看该作者
OwnWaterloo 发表于 2012-04-22 12:09
回复 31# Reallsc

下面的回答全是我的猜测,不可当真。

上面举的例子不够好,应该不是变参的原因。比如fwrite和fseek这样的对比:
size_t fwrite(const void *ptr, size_t size, size_t nobj, FILE *stream)
int fseek(FILE *stream, long offset, int origin)
可能就是非同一人制定,而且要照顾旧有代码的原因。

这种不一致太明显,不知道C语言和库的设计者是否有别的考量。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
34 [报告]
发表于 2012-04-22 13:04 |只看该作者
回复 33# Reallsc

这我也无能为力了

论坛徽章:
0
35 [报告]
发表于 2012-04-22 21:52 |只看该作者
string.h,必须的

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:45
36 [报告]
发表于 2012-04-23 09:13 |只看该作者
回复 33# Reallsc

我觉么着就是一时起兴写的

论坛徽章:
0
37 [报告]
发表于 2012-04-24 17:59 |只看该作者
那个帖真是神帖,当然主要是神人
标准就那样规定了,有历史或其他原因,可以讨论
那书还是别出了,看了样张真别扭,文字华而不实,罗哩罗嗦,不严谨
作者用意是好的,想写得有趣形象易懂一些,肚子里的东西不扎实,难免出问题
那个数据与数据结构的辩护把我笑坏了,只好佩服其勇气,呵呵
写入门书,要表达C++标准的观点,而不是自己的观点,不然误导初学。入门书需更谨慎,一旦灌输了错误概念和习惯,贻害无穷。
最近看了scheme 的那个文档(How to Design Programs),rocket带的,咋就那么条理呢,不管写那种入门书,都应该看看

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
38 [报告]
发表于 2012-04-24 19:50 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
39 [报告]
发表于 2012-04-25 08:14 |只看该作者
回复 38# pmerofc
这个是写的肉麻
这书我支持严厉批评。作者要谦虚点,质疑C++标准和著名观点,得拿出点真东西,不过勇气可嘉,呵呵

   

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
40 [报告]
发表于 2012-06-30 22:44 |只看该作者
回复 39# stonemason


    还是别嘉了吧,这年头横的怕愣的,楞的怕不要命的,本身无知已经很难搞了,再有勇气我们就都别混了= =
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP