学点C言語(15):データ型-sizeof(検出型サイズ)
2425 ワード
タイプサイズを取得する変数はintタイプではなくsize_が望ましいtタイプ;
size_tはstdio.h、stddef.hには定義がある.
1.既知のタイプのサイズを取得するには:
2.取得タイプのサイズは、タイプ名または変数名によって異なります.
3.変数名(タイプ名以外)については、sizeofは括弧で囲まないこともできます.
4.sizeof(配列変数)は次元ではなく配列サイズを取得します.これはDelphiとは異なります.
size_tはstdio.h、stddef.hには定義がある.
1.既知のタイプのサイズを取得するには:
#include <stdio.h>
#include <stddef.h>
int main(void)
{
char n = 2;
size_t size;
size = sizeof(char);
printf("%*u: char
", n,size);
size = sizeof(unsigned char);
printf("%*u: unsigned char
", n,size);
size = sizeof(short);
printf("%*u: short
", n,size);
size = sizeof(unsigned short);
printf("%*u: unsigned short
", n,size);
size = sizeof(int);
printf("%*u: int
", n,size);
size = sizeof(unsigned);
printf("%*u: unsigned
", n,size);
size = sizeof(long);
printf("%*u: long
", n,size);
size = sizeof(unsigned long);
printf("%*u: unsigned long
", n,size);
size = sizeof(long long);
printf("%*u: long long
", n,size);
size = sizeof(unsigned long long);
printf("%*u: unsigned long long
", n,size);
size = sizeof(float);
printf("%*u: float
", n,size);
size = sizeof(double);
printf("%*u: double
", n,size);
size = sizeof(long double);
printf("%*u: long double
", n,size);
size = sizeof(wchar_t);
printf("%*u: wchar_t
", n,size);
getchar();
return 0;
}
2.取得タイプのサイズは、タイプ名または変数名によって異なります.
#include <stdio.h>
int main(void)
{
int i;
double d;
printf("%u, %u
", sizeof(i), sizeof(int));
printf("%u, %u
", sizeof(d), sizeof(double));
getchar();
return 0;
}
3.変数名(タイプ名以外)については、sizeofは括弧で囲まないこともできます.
#include <stdio.h>
int main(void)
{
int i;
double d;
printf("%u
", sizeof i);
printf("%u
", sizeof d);
getchar();
return 0;
}
4.sizeof(配列変数)は次元ではなく配列サイズを取得します.これはDelphiとは異なります.
#include <stdio.h>
int main(void)
{
int nums[10];
printf("%u
", sizeof nums); /* */
printf("%u
", sizeof(nums) / sizeof(int)); /* */
getchar();
return 0;
}