【发布时间】:2012-10-09 07:08:04
【问题描述】:
我正在将应用程序移植到 Linux 平台上的 64 位。该应用程序目前支持 Linux、Windows、Mac 32 位和 Windows 64 位。我们经常遇到的问题之一是将 long 用于 int,反之亦然。到目前为止,这不是问题,因为 long 和 int 在当前支持应用程序的平台中是可互换的(都是 4 个字节)。代码库是一个庞大的代码库,其中有许多带有#defines 的遗留代码用于许多数据类型,这使得搜索 long 的所有用法并用 int 适当地替换很麻烦。
- 作为短期解决方案,有没有办法让 GCC 使用 4 个字节而不是 8 个字节来表示“长”?
- 如果有,我们可能会面临哪些问题?如果没有,有没有更简单的方法来解决 long 和 int 问题?
【问题讨论】:
-
这不是您当前问题的解决方案(因此是注释),但对于未来的代码,我会使用精确的宽度类型(例如,
uint32_t)。
标签: linux gcc 64-bit long-integer