在程序中使用Windows数据类型的目的

时间:2013-08-02 23:55:24

标签: windows types

我试图在定义特定语言的函数/结构字段的参数时理解使用Windows数据类型的目的。我已经阅读了详细说明如果“基础类型”发生变化,如何防止代码“破坏”的解释。有人可以提出一个简明的解释和例子来澄清吗?感谢。

1 个答案:

答案 0 :(得分:0)

在类似帖子(Why are the standard datatypes not used in Win32 API?)中找到答案:

这些类型按照它们的方式定义的原因,而不是使用int,char等,它是从操作系统的界面中删除“编译器认为int应该被设置为”的任何内容。这是一件非常好的事情,因为如果您使用编译器A,编译器B或编译器C,它们都将使用相同的类型 - 只有库接口头文件需要做正确定义类型的事情。

通过定义非标准类型的类型,可以很容易地将int从16位更改为32位。 Windows的第一个C / C ++编译器使用16位整数。只是在1990年代中后期,Windows获得了32位API,直到那时,你使用的是16位的int。想象一下,你有一个使用数百个int变量的良好工作程序,突然之间,你必须将所有这些变量改为其他东西......不会很好,对 - 尤其是其中一些变量不需要改变,因为为某些代码移动到32位int不会有任何区别,所以改变这些位没有意义。

应该注意的是,WCHAR与const char不同 - WCHAR是“宽字符”,因此wchar_t是可比类型。

因此,基本上,“定义我们自己的类型”是一种保证可以更改底层编译器体系结构的方法,而无需更改(大部分)源代码。所有进行机器编码的大型项目都会做这类事情。

相关问题