programmeur aihser
変数の大きさ確認プログラム
最終更新:
匿名ユーザー
-
view
C言語のデータ型の大きさ確認プログラム
結構、長くなってしまったが↓
#include <stdio.h>
void func1(short asss[])
{
printf("\n");
printf("function: void func1(short asss[]);\n");
printf("sizeof(asss) = %d\n", sizeof(asss) );
}
void func2(short * psss)
{
printf("\n");
printf("function: void func1(short * psss);\n");
printf("sizeof(psss) = %d\n", sizeof(psss) );
}
void func3(short attt[][4])
{
printf("\n");
printf("function: void func3(short attt[][4]);\n");
printf("sizeof(attt) = %d\n", sizeof(attt) );
}
void func4(short (*pttt)[4])
{
printf("\n");
printf("function: void func1(short (*pttt)[4]);\n");
printf("sizeof(pttt) = %d\n", sizeof(pttt) );
}
int main(void)
{
short sss[10];
short ttt[3][4];
printf("sizeof( char) = %d\n", sizeof( char) );
printf("sizeof( short) = %d\n", sizeof( short) );
printf("sizeof( int) = %d\n", sizeof( int) );
printf("sizeof( long) = %d\n", sizeof( long) );
printf("sizeof( long long) = %d\n", sizeof( long long) );
printf("sizeof( float) = %d\n", sizeof( float) );
printf("sizeof( double) = %d\n", sizeof( double) );
printf("sizeof( long double) = %d\n", sizeof( long double) );
printf("sizeof( void*) = %d\n", sizeof( void*) );
printf("\n");
printf("short sss[10];\n");
printf("sizeof(sss) = %d\n", sizeof(sss) );
func1(sss);
func2(sss);
printf("\n");
printf("short ttt[3][4];\n");
printf("sizeof(ttt) = %d\n", sizeof(ttt) );
func3(ttt);
func4(ttt);
return 0;
}
注意:環境によっては、printfの「%d」を
「%u」とか「%ld」「%lu」にしなきゃならないかもです。
「%u」とか「%ld」「%lu」にしなきゃならないかもです。
ちなみに、WinXP + VC8使用時、結果は↓
sizeof( char) = 1 sizeof( short) = 2 sizeof( int) = 4 sizeof( long) = 4 sizeof( long long) = 8 sizeof( float) = 4 sizeof( double) = 8 sizeof( long double) = 8 sizeof( void*) = 4 short sss[10]; sizeof(sss) = 20 function: void func1(short asss[]); sizeof(asss) = 4 function: void func1(short * psss); sizeof(psss) = 4 short ttt[3][4]; sizeof(ttt) = 24 function: void func3(short attt[][4]); sizeof(attt) = 4 function: void func1(short (*pttt)[4]); sizeof(pttt) = 4