c各种数据类型的长度

#include 
#include 

typedef struct{
    long a:64;
}STU;

typedef struct{
    int data;
    char *p;
    short short_data;
    char char_array[2];
    short shor_array[4];
}STU_SIZE_STRU;

void test_size()
{
    int a = 99;
    char *p =(char *) &a;
    int *p_int;

    printf("sizeof(char): %lu\n", sizeof(char));
    printf("sizeof(short):%lu\n", sizeof(short));
    printf("sizeof(int):  %lu\n", sizeof(int));
    printf("sizeof(long): %lu\n", sizeof(long));
    printf("sizeof(long int): %lu\n ", sizeof(long int));
    printf("sizeof(long long): %lu\n ", sizeof(long long));
    printf("sizeof(long long int): %lu\n ", sizeof(long long int));

    printf("sizeof(*p(*char)): %lu\n ", sizeof(*p));
    printf("sizeof(p):  %lu\n ", sizeof(p));

    printf("sizeof(STU_SIZE_STRU) %lu\n  ", sizeof(STU_SIZE_STRU));

    printf("sizeof(*int):= %lu \n", sizeof(*p_int));
}


int main(int argc, char *argv[])
{
    test_size();
    return 0;
}

64位机运行结果:

sizeof(char): 1
sizeof(short):2
sizeof(int):  4
sizeof(long): 8
sizeof(long int): 8
 sizeof(long long): 8
 sizeof(long long int): 8
 sizeof(*p(*char)): 1
 sizeof(p):  8
 sizeof(STU_SIZE_STRU) 32
  sizeof(*int):= 4

32位运行结果

sizeof(char): 1
sizeof(short):2
sizeof(int):  4
sizeof(long): 4
sizeof(long int): 4
sizeof(long long): 8
 sizeof(long long int): 8
 sizeof(*p): 1
sizeof(p):  4
sizeof(STU_SIZE_STRU) 20 

你可能感兴趣的:(programming)