为每个变量创建一个新的typedef有什么意义?

Sin*_*all 4 c c++ typedef

标题有点夸张,但我仍然不明白.

作为最基本的示例,请size_ttime.h以下类型获取:

size_t <...>在头文件(以及其他文件)中定义为无符号整数类型.

即使重命名unsigned int也有size_t什么意义?这些事情往往使代码更难理解,因为它们使开发人员寻找那些类型声明来理解,即使它是重命名的基本类型,或者可能是某些类/结构.然而,我发现在不同的图书馆中已经做了很多.

cni*_*tar 14

即使将unsigned int重命名为size_t,有什么意义呢?这些事情往往使代码更难理解

  1. 它使代码更容易理解,你立即知道对象代表什么," 它是某种大小 ".比较一下裸露int.真正的基础类型并不是直接关注的问题:只要您不知道它,您的代码仍然是可移植的

  2. 今天它可能是一个,unsigned int但也许明天它将成为一个unsigned long long.只要您的程序使用正确的类型,它就是面向未来的

他们让开发人员查找那些类型声明

不要看:你会被诱惑用它做不便携的东西.可以想象一下你对C++的看法std::string.你知道它做了什么,你知道如何使用它,但你真的不知道里面是什么.


Alo*_*ave 11

size_t用于确保可移植性.size_t并不总是"unsigned int",但它的大小可以代表给定平台上最大的可能对象.