「C言語/データ型と変数の高度な話題」の版間の差分

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
<ref name="オブジェクトの記憶域期間"/>のundef解決。
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
タグ: 2017年版ソースエディター
263 行
 
{|class="wikitable"
!|+ データ型C言語種類 !! 主なデータ型 !! データ型の名称 !! ビット長 !! 扱える値の範囲の一例
! データ型の種類 !! データ型 !! データ型の名称 !! ビット長 !! 扱える値の範囲<ref>浮動小数点型にあっては正規化数</ref>
|-
|! 型なし |
| void || void型 || - || -
|-
|! rowspan="2"| 文字型 || signed char || 符号付き文字型 || 8 || -128 ~ 127
| signed char<ref name="char-sign">符号有無は処理系定義</ref> || 符号付き文字型 || 8 || -128 ~ 127
|-
<!--||-->|(unsigned) char<ref name="char-sign"/>||(符号無し)文字型||8||0~255
|-
|! rowspan="8"| 整数型 |
| (signed) short int || (符号付き)短整数型 || 16 || -32768 ~ 32767
|-
<!--||-->|unsigned short int || 符号無し短整数型 || 16 || 0 ~ 65535
|-
<!--||-->|(signed) int || (符号付き)整数型 || 32 || -2147483648~21474836472147483648L~2147483647L
|-
<!--||-->|unsigned int || 符号無し整数型 || 32 || 0~42949672950UL~4294967295UL
|-
<!--||-->|(signed) long int || (符号付き)長整数型 || 32 || -2147483648~21474836472147483648L~2147483647L
|-
<!--||-->|unsigned long int || 符号無し長整数型 || 32 || 0~42949672950UL~4294967295UL
|-
<!--||-->|(signed) long long int || (符号付き)長長整数型 || 64 || -92233720368547758089223372036854775808LL92233720368547758079223372036854775807LL
|-
<!--||--> |unsigned long long int || 符号無し長長整数型 || 64 || 00UL1844674407370955161518446744073709551615ULL
|-
|!rowspan="23" | 浮動小数点型
| || float || 単精度浮動小数点型 || 32 ||
最小の正の数1.175494351e175494351E-3838F
最大値3.402823466e402823466E+3838F
|-
<!--||-->|double || 倍精度浮動小数点型 || 64 || 最小の正の数 2.2250738585072014e2250738585072014E-308、 <br>最大値 1.7976931348623158e7976931348623158E+308
|-
<!--||-->|long double || 四倍精度浮動小数点型 || 64 || 最小の正の数 3.3621031431120935063E-4932L、 <br>最大値 1.1897314953572317650E+4932L
|-
|}
299 ⟶ 306行目:
ただし、{{code|int}}、{{code|short}}、{{code|long}}を特定のサイズであるという仮定のもと用いるのは誤りの種である。暗黙に (あるいは[[Java]]のように) {{code|short}}は16ビット、{{code|int}}は32ビット、{{code|long}}は64ビットと仮定してしまうことがあるが、それは一部のプラットフォームに限られる。付け加えるならば、ポインタのアドレス幅に対して仮定することも間違っている。
 
以下の表はそれぞれのビット幅を示す<ref>https://www.viva64.com/en/a/0050/ Table N1</ref><ref>[https://dl.acm.org/doi/pdf/10.1145/1435417.1435431 The Long Road To 64 Bits] john mashey, p.50(Communications of the ACMVolume 52Issue 1January 2009 doi:10.1145/1435417.1435431)</ref>。
{|class="wikitable"
! short
313 ⟶ 320行目:
| 16
| -
| PDP-11/Unix (1973)
|-
| 16
320 ⟶ 327行目:
| 32
| -
| PDP-11/Unix (1977)
|-
| 16
341 ⟶ 348行目:
| 64
| 64
| ほとんどのUnixシステム<!--Most Unix system-->
| 現代のUnix
|-
| 64
| 64
| 64
| 64
| 64
| UNICOS
|}
 
369 ⟶ 383行目:
{{コラム|32ビット(x86)と64ビット(x64)|
以前のパソコンは32ビット(x86)を使うことが多かったが、
現在のパソコンは64ビット(x64)を使うことが主流となっている<ref>サーバ向けWindows OSでは Windows Server 2008 を最後に、PC向け Windows OSでは Windows 10 を最後に32ビットプロセッサのサポートを終了した。</ref>
 
DLL(Dynamic Link Library)は、