您的位置:首页 > 其它

由size_t引发的思考

2017-05-22 18:22 197 查看
今天在看某个源代码文件时,突然看到一个函数:

size_t Print::println(const String &s)
{
size_t n = print(s);
n += println();
return n;
}


很好奇为什么不直接写成下面这样,不是更简洁吗?

size_t Print::println(const String &s)
{
return print(s) + println();
}


一开始我想,应该是为了让程序的可读性更好。

但是接着我得目光聚焦到size_t这个返回值类型,一番百度后得到如下结论:

size_t的全称应该是size type,就是说“一种用来记录大小的数据类型”。

经测试发现,在32位系统中size_t是4字节的,而在64位系统中,size_t是8字节的,这样利用该类型可以增强程序的可移植性。

我突然想到如果不指定整数类型的话,系统会自动转化为int,但是这样的话容易造成数据的丢失,甚至产生错误。所以定义一个size_t变量,然后运算就基于这种数据类型。

也不知道这么想对不对,如果有误,欢迎指出~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: