image.png

DEMO

  1. int main()
  2. {
  3. printf("------------common type--------------\n");
  4. printf("char:[%lu]\n", sizeof(char));
  5. printf("short:[%lu]\n", sizeof(short));
  6. printf("int:[%lu]\n", sizeof(int));
  7. printf("float:[%lu]\n", sizeof(float));
  8. printf("long:[%lu]\n", sizeof(long));
  9. printf("double:[%lu]\n", sizeof(double));
  10. printf("int32_t:[%lu]\n", sizeof(int32_t));
  11. printf("int64_t:[%lu]\n", sizeof(int64_t));
  12. printf("size_t:[%lu]\n", sizeof(size_t));
  13. printf("------------pointer type--------------\n");
  14. printf("char*:[%lu]\n", sizeof(char*));
  15. printf("short*:[%lu]\n", sizeof(short*));
  16. printf("int*:[%lu]\n", sizeof(int*));
  17. printf("float*:[%lu]\n", sizeof(float*));
  18. printf("long*:[%lu]\n", sizeof(long*));
  19. printf("double*:[%lu]\n", sizeof(double*));
  20. printf("int32_t*:[%lu]\n", sizeof(int32_t*));
  21. printf("int64_t*:[%lu]\n", sizeof(int64_t*));
  22. printf("size_t*:[%lu]\n", sizeof(size_t*));
  23. return 0;
  24. }

在 32 位系统中:
image.png
在 64 位系统中
image.png

区别:

通用的类型:
32 位系统中 long 大小为 4 字节,size_t 大小为 4 字节;
64 位系统中 long 大小为 8 字节,size_t 大小为 8 字节;
指针类型:
32 位系统的指针为 4 字节;
64 为系统指针为 8 字节;