首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

为什么字符串设计为\0结尾,而不是给出长度?该如何处理

2012-05-20 
为什么字符串设计为\0结尾,而不是给出长度?以特定符号为结尾,在查找串长度的时候,需要遍历整个串。而如果串

为什么字符串设计为\0结尾,而不是给出长度?
以特定符号为结尾,在查找串长度的时候,需要遍历整个串。而如果串的结构是长度+内容,马上就可以得到串长。
那么为什么以\0为结尾,而不是给定串长呢?这样有什么好处?


[解决办法]
这得问当年K&R的想法,可能是从节省空间考虑的吧,想当年有人家问“如果重新设计unix你会做什么改动?”,其中一位大神回答“把creat改成create……”

想ASN.1标准,还有一些协议的封装,都是用size+content的
[解决办法]
肯定有当时的印记的。
[解决办法]
那个时候,都是石器时代过来的人,一个小约定而已,会写程序,都会控制好

系统里面,预定的东西更多,很多东西今天还在被沿用,也在被一些人利用,呵呵呵
[解决办法]
字符串那些事儿:BSTR-LPSTR-LPWSTR-CString-VARIANT-COleVariant-_variant_t-CComBSTR-_bstr_t
http://blog.csdn.net/pizi0475/archive/2010/03/04/5346708.aspx

[解决办法]
好处就是不用复杂结构啊,你光想着要获取长度的时候方便了,那还有很多时候根本不关心长度呢。
对于一个不是必需的功能,没必要做成必选项吧。
精简才是王道。
[解决办法]
应该能省点空间吧感觉。。。
而且这完全是由当初的设计人员决定的,然后就一直沿袭了下来,不一定就特别有依据。。。

热点排行