sizeof.c

来自「gdb-6.8 Linux下的调试程序 最新版本」· C语言 代码 · 共 124 行

C
124
字号
#include <stdio.h>typedef char padding[16];struct {  padding p1;  char v;  padding p2;} padding_char;struct {  padding p1;  short v;  padding p2;} padding_short;struct {  padding p1;  int v;  padding p2;} padding_int;struct {  padding p1;  long v;  padding p2;} padding_long;struct {  padding p1;  long long v;  padding p2;} padding_long_long;struct {  padding p1;  float v;  padding p2;} padding_float;struct {  padding p1;  double v;  padding p2;} padding_double;struct {  padding p1;  long double v;  padding p2;} padding_long_double;static voidfill (void *buf, long sizeof_buf){  char *p = buf;  int i;  for (i = 0; i < sizeof_buf; i++)    p[i] = "The quick brown dingo jumped over the layzy dog."[i];}voidfill_structs (void){  fill (&padding_char.p1, sizeof (padding));  fill (&padding_char.v, sizeof (padding_char.v));  fill (&padding_char.p2, sizeof (padding));  fill (&padding_short.p1, sizeof (padding));  fill (&padding_short.v, sizeof (padding_short.v));  fill (&padding_short.p2, sizeof (padding));  fill (&padding_int.p1, sizeof (padding));  fill (&padding_int.v, sizeof (padding_int.v));  fill (&padding_int.p2, sizeof (padding));  fill (&padding_long.p1, sizeof (padding));  fill (&padding_long.v, sizeof (padding_long.v));  fill (&padding_long.p2, sizeof (padding));  fill (&padding_long_long.p1, sizeof (padding));  fill (&padding_long_long.v, sizeof (padding_long_long.v));  fill (&padding_long_long.p2, sizeof (padding));  fill (&padding_float.p1, sizeof (padding));  fill (&padding_float.v, sizeof (padding_float.v));  fill (&padding_float.p2, sizeof (padding));  fill (&padding_double.p1, sizeof (padding));  fill (&padding_double.v, sizeof (padding_double.v));  fill (&padding_double.p2, sizeof (padding));  fill (&padding_long_double.p1, sizeof (padding));  fill (&padding_long_double.v, sizeof (padding_long_double.v));  fill (&padding_long_double.p2, sizeof (padding));}intmain (){  fill_structs ();  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 (void *) == %d\n", sizeof (void*));  printf ("sizeof (void (*)(void)) == %d\n", sizeof (void (*)(void)));  printf ("sizeof (float) == %d\n", sizeof (float));  printf ("sizeof (double) == %d\n", sizeof (double));  printf ("sizeof (long double) == %d\n", sizeof (long double));  /* Signed char?  */  printf ("valueof ('\\377') == %d\n", '\377');  printf ("valueof ((int) (char) -1) == %d\n", (int) (char) -1);  printf ("valueof ((int) (signed char) -1) == %d\n", (int) (signed char) -1);  printf ("valueof ((int) (unsigned char) -1) == %d\n", (int) (unsigned char) -1);  return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?