作者khoguan (Khoguan Phuann)
看板C_and_CPP
标题[FAQ集] 基本型别:C/C++有多种整数类的型别,如何选?
时间Mon Sep 19 09:03:16 2005
ptt.cc BBS 站 C_and_CPP 板 FAQ (0.1版)
基本型别的问题
Q: C/C++整数类的型别那麽多种,如何选择?
A: (本题答案乃是参考 comp.lang.c FAQ 1.1则)
因为在所有的整数类型别中,int 是对机器来说最「自然」的型别,所以若
无其他考量,需要整数时,用 int可以获得较小的程式码与较好的执行效率。
如果有记忆空间占用太多的顾虑,例如要用到一个元素个数极多的阵列,才
考虑改用较小的整数型别,例如 short, 甚至 unsigned char。当然,所选
型别必须要能充份涵盖所要表示的数值范围。在 32位元 int 平台上(目前
最常见的),若要更大的整数,可考虑用 long long 或unsigned long long,
但 long long只有 C99 才将它纳入标准。参考下一则。
float 与 double 的抉择亦然。对机器来说,double 比 float 还要来得
「自然」,但 double 占的记忆体空间比 float 大。
如果需要长度固定的整数类型别(同样是 int,在不同平台长度不同),那
就要用 typedef 的方式来定义。当要将程式移植到不同平台时,只要修改
typedef 的定义就可。MS VC++ 定义了许多这种固定长度的整数类型别。
by Khoguan Phuann
-----------------------------------
敬请指正错误,或提出更合适的答案。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.130.208.168
※ 编辑: khoguan 来自: 220.130.208.168 (09/19 09:10)
1F:推 allall:所谓"自然"是指? 不太了解 > < 自然耶尚好吗 09/19 09:48
2F:推 FRAXIS:C语言有定义整数型态的容量下限与大小关系 09/19 11:13
3F:→ FRAXIS:这也可以说明一下 09/19 11:14
4F:推 s213895:借转 06/26 18:20