gcc c99 MS2005 / 2008
我已经启动了将在linux / windows上编译的程序。
该程序将使用gcc 4.4.1 c99在linux上编译。在Windows上,编译器将是MS 2005/2008。而我无法改变。
我正在使用SCons来创建构建文件。但是,我选择c99的原因是因为我可以使用stdint.h所以我的整数将在不同的架构之间兼容,即x86_32和64位。使用int32_t所以它将在32位和64位计算机上编译而没有任何问题。
但是,我刚刚发现c99不用于ms编译器。只有c89。但是,c89没有stdint.t。
我想知道在32或64上运行的不同编译器之间使整数可移植的最佳方法是什么。
非常感谢任何建议,
答案 0 :(得分:1)
如果您实际上并没有尝试直接映射“来自电线”的二进制格式,那么您可能根本不需要固定宽度类型。
举例来说,如果您使用int32_t
只是因为您需要一个整数而不是可以存储-2147483647
到2147483647
范围内的所有值,那么就是{{1}对于该应用程序而言,它是完全可移植的 - 它保证至少是那么宽。
人们似乎非常热衷于精确宽度类型。