官术网_书友最值得收藏!

建議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類型,至少它們也應該相等。

主站蜘蛛池模板: 镇雄县| 兰考县| 报价| 惠水县| 台安县| 平江县| 九龙城区| 阿荣旗| 龙山县| 阳曲县| 崇义县| 枣阳市| 醴陵市| 杂多县| 固阳县| 新竹县| 西乌| 丰都县| 娄底市| 鸡西市| 喀喇| 德保县| 泌阳县| 江永县| 台湾省| 山阳县| 香河县| 麟游县| 肇庆市| 呼图壁县| 蒙城县| 灵台县| 莱西市| 太保市| 唐海县| 江城| 县级市| 仙桃市| 迭部县| 定陶县| 汾阳市|