为什么Microsoft将类型CHAR定义为char,将宏CONST定义为const?

时间:2015-01-14 18:05:15

标签: c windows types macros

作为C初学者,通过MSDN's Windows Data Types查看,我发现有很多类型被定义似乎是多余的。

例如使用typedef

  • CHAR - typedef char CHAR;
  • FLOAT - typedef float FLOAT;

也作为对象宏:

  • CONST - #define CONST const

据我了解,typedef#define通常用于澄清程序员的意图:

#define BOOL int

和/或缩短类型声明(想不出好的例子):

typedef unsigned char BYTE;

但是我不明白如何用CHAR替换char会有什么好处。

那么为什么微软会定义这些类型?

1 个答案:

答案 0 :(得分:1)

这是一个猜测,没有任何研究证实。

该语言的基本类型具有所有小写类型。标准可能会在未来开始使用byte作为类型,但不太可能将BYTE用作类型。 Microsoft选择使用typedef#define创建几种类型,这些类型对他们来说很有意义,并且对某些人来说更容易为他们的平台编程。他们还确保他们的类型与标准未来可能使用的内容不冲突。

如果您使用BYTE作为类型,是否宁愿使用CHAR作为类型而不是char