「C言語/データ型と変数の高度な話題」の版間の差分
削除された内容 追加された内容
→固定幅の整数型: https://en.wikipedia.org/w/index.php?title=C_data_types&oldid=1036349659 から Fixed-width integer type 節を抄訳 タグ: 2017年版ソースエディター |
→主なデータ型: 出典加筆 タグ: 2017年版ソースエディター |
||
260 行
浮動小数点型とは浮動小数点数を格納するためのデータ型で float または double を用いる。浮動小数点数とは有効数字部と指数部とによる実数の近似値の表現方式である。またfloatとdoubleとでは doubleのほうが精度が高い。
主なデータ型を表にまとめた。実際のビット長及び扱える値の範囲は limits.h および float.h により確認できる<ref name=c1x-inttypes>{{cite book | url=http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf | title=ISO/IEC 9899:201x Committee Draft — April 12, 2011 N1570 | at=p.26, § 5.2.4.2.1 ''Sizes of integer types'', p.479, § B.9 ''Sizes of integer types''}}</ref><ref name=c1x-floattypes>{{cite book | url=http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf | title=ISO/IEC 9899:201x Committee Draft — April 12, 2011 N1570 | at=p.28, § 5.2.4.2.2 ''Characteristics of floating types''}}</ref>。
{|class="wikitable"
|+ C言語の主なデータ型とビット長と範囲の一例<ref>環境は、FreeBSD 13.0/amd64 + clang version 11.0.1</ref>
! データ型の種類 !! データ型 !! データ型の名称 !! ビット長 !! 扱える値の範囲<ref>浮動小数点型にあっては正規化数</ref>
|-
269 行
| void || void型 || - || -
|-
! rowspan="
|
|-
<!--||-->|
|-
<!--||-->|unsigned char<ref name="char-sign"/>||符号無し文字型||8(CHAR_BIT)||0(UCHAR_MIN)~255(UCHAR_MAX)
|-
! rowspan="8"| 整数型
|
|-
<!--||-->|unsigned short int || 符号無し短整数型 || 16 || 0(USHRT_MIN) ~ 65535(USHRT_MAX)
|-
<!--||-->|
|-
<!--||-->|unsigned int || 符号無し整数型 || 32 ||
|-
<!--||-->|
|-
<!--||-->|unsigned long int || 符号無し長整数型 || 32 ||
|-
<!--||-->|
|-
<!--||--> |unsigned long long int || 符号無し長長整数型 || 64 || 0UL(ULLONG_MIN) ~ 18446744073709551615ULL(ULLONG_MAX)
|-
!rowspan="3" | 浮動小数点型
| float || 単精度浮動小数点型 || 32 ||
最小の正の数1.175494351E-38F
最大値3.402823466E+38F(FLT_MAX)
|-
<!--||-->|double || 倍精度浮動小数点型 || 64 || 最小の正の数 2.2250738585072014E-308
|-
<!--||-->|long double || 四倍精度浮動小数点型 ||
|-
|}
▲* 表中のデータ型にある「()」は省略可能であることを表す。
ただし、{{code|int}}、{{code|short}}、{{code|long}}を特定のサイズであるという仮定のもと用いるのは誤りの種である。暗黙に (あるいは[[Java]]のように) {{code|short}}は16ビット、{{code|int}}は32ビット、{{code|long}}は64ビットと仮定してしまうことがあるが、それは一部のプラットフォームに限られる。付け加えるならば、ポインタのアドレス幅に対して仮定することも間違っている。
358 ⟶ 359行目:
|}
ビット長が固定でなければならない場合、プラットフォーム可搬な固定長整数を得る場合は、{{code|<stdint.h>}}をインクルードし
{{Main|C言語/データ型と変数の高度な話題#固定幅の整数型}}
{|class="wikitable"
! ビット長
|