有多大(在bits)是一个WindowsBOOL数据类型?
微软定义the BOOL数据类型 http://msdn.microsoft.com/en-us/library/aa383751.aspx as:
BOOL Boolean variable (should be TRUE or FALSE).
This type is declared in WinDef.h as follows:
typedef int BOOL;
这将我的问题转化为:
有多大(以位为单位)int数据类型?
编辑:在 K&R 之前。
编辑2:一些值得思考的事情
Pretend我们正在创建一种类型化编程语言和编译器。你有一个代表某种逻辑存在的类型True or False。如果您的编译器还可以链接到 Windows DLL,并且您想要调用需要BOOL数据类型,您将传递/返回您语言中的哪种数据类型?
为了与 Windows BOOL 数据类型进行互操作,您必须知道 BOOL 有多大。问题就变成了有多大int是。但这是一个 C/C++ int,而不是Integer我们假装语言中的数据类型。
所以我需要找到或创建一个与 int 大小相同的数据类型。
Note:在我最初的问题中,我没有创建编译器。我正在使用非 C/C++ 语言调用 Windows,因此我需要找到与 Windows 期望的大小相同的数据类型。
int正式的定义是“大于或等于 Short int 类型大小且小于或等于 long 类型大小的整型”。它可以是任意大小,并且是特定于实现的。
在 Microsoft 当前的编译器实现上,它是 4 个字节(32 位)(这是特定于编译器的,而不是特定于平台的)。您可以在基本类型 (C++) http://msdn.microsoft.com/en-us/library/cc953fe1(VS.71).aspxMSDN 页面(靠近底部)。
基本类型的大小
Type Size
======================= =========
int, unsigned int 4 bytes
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)