作为C初学者,通过MSDN's Windows Data Types查看,我发现有很多类型被定义似乎是多余的。
例如使用typedef
:
typedef char CHAR;
typedef float FLOAT;
也作为对象宏:
#define CONST const
据我了解,typedef
和#define
通常用于澄清程序员的意图:
#define BOOL int
和/或缩短类型声明(想不出好的例子):
typedef unsigned char BYTE;
但是我不明白如何用CHAR替换char会有什么好处。
那么为什么微软会定义这些类型?
答案 0 :(得分:1)
这是一个猜测,没有任何研究证实。
该语言的基本类型具有所有小写类型。标准可能会在未来开始使用byte
作为类型,但不太可能将BYTE
用作类型。 Microsoft选择使用typedef
和#define
创建几种类型,这些类型对他们来说很有意义,并且对某些人来说更容易为他们的平台编程。他们还确保他们的类型与标准未来可能使用的内容不冲突。
如果您使用BYTE
作为类型,是否宁愿使用CHAR
作为类型而不是char
?