测试大小端的程序&测试数据类型占用的字节数

1.测试大小端的程序

#include<stdio.h>
union ss
{short int i;
char c[2];
};
void main()
{union ss x;
    x.c[0]=10;
    x.c[1]=1;
    printf("%d",x.i);
}

由于定义的共用体ss中的变量i和c共同占有2个字节的地址,而编译器VC是小端模式,


故字符数组c和短整形i在内存中的分布情况是这样的: 地址1                        地址0

                                                 c[]:            0000 0001(c[1])                0000 1010(c[0])

                                                 i:                    0000 0001                   0000 1010

因此变量i的值为:1*256^1 + 10*256^0 = 266!!


2.测试数据类型占用的字节数

#include<stdio.h>
int main()
{
    int i[10];
    char* src = "hello world!";
    char srcc[20] = "hello world!";
    //data type
    printf("size of char:%d bytes!\n",sizeof(char));
    printf("size of int:%d bytes!\n",sizeof(int));
    //pointer
    printf("size of void*:%d bytes!\n",sizeof(void*));
    printf("size of int*:%d bytes!\n",sizeof(int*));
    printf("size of char*:%d bytes!\n",sizeof(char*));
    //data
    printf("size of int[]:%d bytes!\n",sizeof(i));
    printf("size of src:%d bytes!\n",sizeof(src));
    printf("size of srcc:%d bytes!\n",sizeof(srcc));
    return 0;
}
运行结果:






你可能感兴趣的:(c,测试,编译器)