我正在编写一个程序,以每 32 位(即一次 4 个字节)为单位将数据存储到文件中。我在64位Windows系统中编写代码,但我使用的编译器是32位(mingw32)。在当前系统中,int和long的大小是相同的,都是32位(4字节)。我目前正在通过使用 g++ 重新编译(不更改代码)将代码移植到其他系统。但是,我发现 int 或 long 的大小是不同的,并且取决于系统。有什么方法(比如在头文件中使用宏)来确定整数的大小,从而决定是否应使用 int 或 long 作为代码中的数据类型?我必须在4种不同类型的系统中重新编译代码,如果我修改代码为每个系统有4个不同的副本,那真的很头痛。
您想要做的是使用标准类型,例如int32_t
。该类型始终为 32 位。我目前在可移植数据库(berkeley db)中使用这些类型以实现跨系统兼容性。
See here http://www.nongnu.org/avr-libc/user-manual/group__avr__stdint.html对于他们所有人。
包含 stdint.h 来获取这些定义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)