标题有点夸张,但还是没看懂。
作为一个最基本的例子,从 获取size_t
类型time.h
:
size_t <...> 在头文件(以及其他)中定义为无符号整数类型。
甚至重命名unsigned int
为 有什么意义size_t
?这样的事情通常会使代码更难理解,因为它们让开发人员寻找那些类型声明来理解,即使它是重命名的基本类型,或者可能是一些类/结构。然而,我看到这在不同的图书馆中做了很多。
甚至将 unsigned int 重命名为 size_t 有什么意义?这样的事情往往使代码更难理解
它使代码更容易理解,您立即知道对象代表什么,“它是某种大小”。将其与裸露的int
. 真正的底层类型没有直接关系:只要您不知道它,您的代码就保持可移植性
今天它可能是一个,unsigned int
但也许明天它会是一个unsigned long long
。只要您的程序使用正确的类型,它就是面向未来的
他们让开发人员寻找那些类型声明
不要看:你会很想用它做非便携式的事情。按照您对 C++ 的看法来思考它std::string
。你知道它的作用,你知道如何使用它,但你并不真正知道里面是什么。
size_
t 用于确保可移植性。size_t
并不总是"unsigned int",但它是可以表示给定平台上最大可能对象的大小。
对于标准 C 库等低级库,typedef
对于增加用户程序的可移植性很重要;没有辩论。
另一方面,在程序中使用别名是一个有趣的问题。主要有两个原因:
原因是类型可以为您提供关于变量代表什么的更好线索。std::size_t、std::ptrdiff_t 等类型会告诉您更多关于正在发生的事情的信息,而不是仅仅看到一堆 if 整数。