我正在將應用程序移植到Linux平臺上的64位。該應用程序目前支持Linux,Windows,Mac 32位和Windows 64位。我們經常遇到的一個問題是int對long的使用,反之亦然。直到現在,這並不是一個問題,因爲long和int在應用程序當前支持的平臺上可以互換(都是4個字節)。該代碼庫是一個巨大的代碼庫,有許多遺留代碼用於許多數據類型的#defines,因此搜索long的所有用法並用int進行適當替換會很麻煩。在64位Linux機器上在gcc中創建'long'4字節
- 作爲一個短期的解決方案,有沒有辦法讓GCC使用4個字節而不是8個'long'?
- 如果有,我們可能會遇到什麼問題?如果沒有,是否有更簡單的方法來解決長期和整數問題?
這不是解決您的直接問題(因此評論),但對於未來的代碼,我會使用確切的寬度類型來代替(例如'uint32_t')。 –