- 編寫高質量代碼:改善C程序代碼的125個建議
- 馬偉 著
- 443字
- 2019-01-01 01:33:10
建議3:盡量少使用浮點類型
C語言標準規定的浮點數據類型有float、double、long double三種,如表1-7所示。
表1-7 ANSI標準定義的浮點數據類型

和整型一樣,浮點數據類型既沒有規定每種類型占多少字節,也沒有規定采用哪種表示形式。因此,浮點數據類型的實現在各種平臺上差異很大,有的處理器有浮點運算單元(Floating Point Unit,FPU),稱為硬浮點(Hard-float)實現;而有的處理器沒有浮點運算單元,只能做整數運算,也就是需要用整數運算來模擬浮點運算,這種實現方式稱為軟浮點(Soft-float)實現。迄今為止,大部分平臺的浮點數實現都遵循IEEE 754標準(IEEE Standard for Binary Floating-Point Arithmetic,ANSI/IEEE Std 754-1985)。
這里需要特別說明的是,ANSI C并未規定long double類型的準確精度。正因為如此,對于不同的平臺,long double類型可能有不同的實現,有的是8字節,有的是10字節,還有的是12字節或更多。在x86平臺上,大多數編譯器實現的long double類型是80位,因為x86的浮點運算單元具有80位精度。如在VC++2010中運行“sizeof(long double)”所得的結果為8,而在GCC中運行“sizeof(long double)”所得的結果則為12(即96位)。但一般來說,long double類型的精度要高于double類型,至少它們也應該相等。
推薦閱讀
- 少兒人工智能趣味入門:Scratch 3.0動畫與游戲編程
- Oracle從入門到精通(第3版)
- PyTorch自動駕駛視覺感知算法實戰
- Java高并發核心編程(卷2):多線程、鎖、JMM、JUC、高并發設計模式
- Python從菜鳥到高手(第2版)
- 從程序員到架構師:大數據量、緩存、高并發、微服務、多團隊協同等核心場景實戰
- C語言最佳實踐
- Mastering Unity Shaders and Effects
- MySQL數據庫基礎實例教程(微課版)
- 表哥的Access入門:以Excel視角快速學習數據庫開發(第2版)
- Python算法指南:程序員經典算法分析與實現
- 軟件工程與UML案例解析(第三版)
- 會當凌絕頂:Java開發修行實錄
- WCF編程(第2版)
- Roslyn Cookbook