我正在将应用程序移植到 Linux 平台上的 64 位。该应用程序目前支持 Linux、Windows、Mac 32 位和 Windows 64 位。我们经常遇到的问题之一是将 long 用于 int,反之亦然。到目前为止,这不是问题,因为 long 和 int 在当前支持应用程序的平台中是可互换的(都是 4 个字节)。代码库是一个庞大的代码库,有许多带有#defines 的遗留代码用于许多数据类型,这使得搜索 long 的所有用法并用 int 适当地替换变得很麻烦。
- 作为短期解决方案,有没有办法让 GCC 使用 4 个字节而不是 8 个字节来表示“长”?
- 如果有,我们可能会面临哪些问题?如果没有,是否有更简单的方法来解决 long 和 int 问题?