我正在查看Fortran 2008中引入的storage_size內在函數以獲取用戶定義類型man storage size的大小。它以位爲單位返回大小,而不是字節。我想知道是什麼原理是以位而不是字節返回大小。 因爲我需要以字節爲單位的大小,所以我只是簡單地將結果除以8.假設返回的大小總是可以被8整除是安全的嗎?Fortran storage_size內在函數
2
A
回答
3
期望字節始終爲8位(請參閱模塊iso_fortran_env
中的CHARACTER_STORAGE_SIZE
)!對於storage_size()
的理由,請聯繫SC22/WG5或X3J3的某個人,但其中一位前成員總是說(在comp.lang.fortran上),這些問題沒有多少意義和一個明確的答案。通常只有人推動這個變體而不是另一個。
我的猜測會與前面的函數bit_size()
對稱是原因之一。爲什麼有bit_size()
而不是byte_size()
?我猜你不必將其與字節大小相乘(並檢查一個字節的大小),並且可以立即應用位操作過程。
給你最後一個問題。是的,在具有8位字節的機器上(其他機器沒有Fortran 2008編譯器AFAIK),位大小總是可以被8整除,因爲一個字節是最小的可尋址內存塊,結構不能只使用一個字節的一部分。
相關問題
- 1. fortran內在函數sqrt()行爲
- 2. FORTRAN函數
- 3. c/fortran函數內存分析工具
- 4. Fortran函數數組
- 5. 在FORTRAN中使用內部SUM函數的數組的軌跡
- 6. Fortran 90,函數,數組
- 7. Fortran傳遞語句函數到函數
- 8. 的Fortran findloc內在
- 9. Fortran中的函數組合
- 10. Fortran函數中的別名
- 11. Fortran等價於numpy.where()函數?
- 12. Fortran中的int()函數77
- 13. 使用Fortran重載函數
- 14. Fortran中的函數指針
- 15. fortran中的combination_with_replacement函數?
- 16. 從Fortran調用C函數
- 17. Fortran函數多態性
- 18. Fortran中的私有函數
- 19. FORTRAN型missmatch調用函數
- 20. 如何在Fortran中創建函數?
- 21. 在Rcpp中包裝fortran函數
- 22. 在OpenMP fortran線程中調用函數
- 23. 如何處理不屬於標準的FORTRAN內部函數?
- 24. Fortran 95:數組函數返回。越界
- 25. fortran 90函數的雙精度參數
- 26. Fortran函數中的可選參數
- 27. Fortran 90函數沒有參數?
- 28. fortran acos函數參數魯棒性
- 29. Fortran |將函數作爲其他函數的參數傳遞
- 30. 調用函數時Fortran無限循環
謝謝。我看到iso_c_binding模塊中還有一個c_sizeof,它返回字節大小。 – jitihsk
是的,但是它僅限於Fortran 2008中C可互操作的結構。大多數編譯器也支持'sizeof()'作爲擴展。 –