我遇到問題。當我編譯我的項目時,我有sizof(long int) = 8
和sizof(int) = 4
。不過,我需要sizeof(long int)
也是4。有沒有辦法做到這一點? 問題是我有很多龐大的int數組,需要將它們賦給long int數組。如果我將所有數組轉換(特別是表示轉換數組的每個條目),會導致很多時間。如何強制長爲4字節
2
A
回答
6
您不能強制LP64平臺(或陌生人平臺)上的內置long int
類型長度爲4個字節。
但是,您可以使用<stdint.h>
中的類型來確保變量的確切大小。
對於您的情況,您需要將int32_t
或uint32_t
作爲您的類型,具體取決於您是否需要/需要符號位。
0
您可能能夠告訴編譯器您所定位的平臺或使用編譯器特定的命令來告知編譯器您的變量的大小。
另一種方法是使用宏和定義它根據你的平臺上:
#if PLATFORM_USES_8_BYTE_LONG
#define MY_LONG_INT int32_t
#else
#define MY_LONG_INT long int
#endif
的首選方法是設置你的編譯器的目標架構。許多編譯器都有大量預定義的體系結構可供選擇。
相關問題
- 1. 如何在任何拱門上強制長度爲8字節的大小?
- 2. 將int寫入字節,長度爲4
- 3. Java將長轉換爲4字節
- 4. 如何強制的字節串
- 5. 十六進制爲整數(4字節)
- 6. 如何將枚舉強制轉換爲字節數組?
- 7. 強制字節順序
- 8. 如何將int轉換爲4字節的十六進制
- 9. C++強制new []不分配4個字節
- 10. 將32位長分成4個字節
- 11. DER長度超過4個字節?
- 12. 0字符長度爲4
- 13. 從Android的字節數4字節得到長
- 14. 如何複製二進制文件的字節爲字節
- 15. 轉換爲C字節數組長長
- 16. 如何插入數字到4字節
- 17. 如何在java中將十六進制字符串更改爲4字節?
- 18. 如何在Excel中強制使用4位數字?
- 19. 如何強制中文等亞洲語言的字符長度?
- 20. 將4字節十六進制轉換爲十進制值
- 21. 轉換4字節十六進制字符串爲整數
- 22. 爲什麼字符串的字節長度比長度長?
- 23. 強制去讀Uvarint的多個字節
- 24. 如何爲* .example.com強制https?
- 25. IE忽略八位字節流 - 如何強制下載?
- 26. 如何強制zlib解壓超過X字節?
- 27. 如何強制yaml中的所有節點都是字符串
- 28. 如何在elisp中強制字節編譯一個目錄
- 29. 如何製作一個長度爲4個字符的隨機數 - Java
- 30. 茉莉如何強制長場長久不變?
http://stackoverflow.com/questions/4244311/gcc-width-of-long-int-on-different-architectures – NPE
從'long int'中刪除所有'long',或者替換/重新定義'long int' 'int32_t' –
你有沒有試過,或者你只是假設它會很慢?速度幾乎肯定是內存帶寬限制。 – MSalters