- 论坛徽章:
- 0
|
原帖由 wwwsq 于 2008-1-29 11:54 发表
用const的人是吃饱了撑的。给自己找麻烦,也给别人找麻烦。
出于历史原因,很多函数接口里面有const,这没办法。这已经够烦的了,别再添烦了。
比如strcpy()函数的第二个参数,就是带const。它就是带const的,已经是陈年旧账,你有什么办法?又改不来。
从 C 的历史来看,它总是在不停地找“麻烦”。
最初的 C 语言并没有 const 关键字,所以那时候库函数中也没有 const 来修饰参数。
- char *strcpy(char * s1, char * s2);
复制代码
后来随着需要,有的编译器的实现增加了 const 供使用,并且被 C 的第一个标准 C89 所接受,从此之后标准库函数中该加 const 的地方才都加上了。这一改动也要求用户在自己的代码中注意 const 的使用;该用的地方不用,会给其它使用者带来不便。
- char *strcpy(char * s1, const char * s2);
复制代码
在此之后,人们还不满足,新的 C 标准 C99 又增加了 restrict 关键字,所以你可看到 strcpy() 的声明已经变成了这样:
- char *strcpy(char * restrict s1, const char * restrict s2);
复制代码
[ 本帖最后由 whyglinux 于 2008-4-10 21:47 编辑 ] |
|