c99-scope-2.c

来自「this is a gcc file, you can download it 」· C语言 代码 · 共 72 行

C
72
字号
/* Test for new block scopes in C99.  Test for each new scope.  *//* Origin: Joseph Myers <jsm28@cam.ac.uk> *//* { dg-do run } *//* { dg-options "-std=iso9899:1999 -pedantic-errors" } */extern void abort (void);extern void exit (int);intmain (void){  struct foo { int i0; };  int a, b, c, d;  a = sizeof (struct foo);  if (b = sizeof (struct foo { int i0; int i1; }))    c = sizeof (struct foo { int i0; int i1; int i2; });  if (!(a <= b && b <= c))    abort ();  if ((b = sizeof (struct foo { int i0; int i1; })), 0)    c = sizeof (struct foo { int i0; int i1; int i2; });  else    d = sizeof (struct foo { int i0; int i1; int i2; int i3; });  if (!(a <= b && b <= d))    abort ();  switch (b = sizeof (struct foo { int i0; int i1; }))    default:      c = sizeof (struct foo { int i0; int i1; int i2; });  if (!(a <= b && b <= c))    abort ();  do    c = sizeof (struct foo { int i0; int i1; int i2; });  while ((b = sizeof (struct foo { int i0; int i1; })), 0);  if (!(a <= b && b <= c))    abort ();  d = 1;  while ((b = sizeof (struct foo { int i0; int i1; })), d)    (c = sizeof (struct foo { int i0; int i1; int i2; })), d--;  if (!(a <= b && b <= c))    abort ();  d = 1;  for ((b = sizeof (struct foo { int i0; int i1; })); d; d--)    c = sizeof (struct foo { int i0; int i1; int i2; });  if (!(a <= b && b <= c))    abort ();  d = 1;  for ((b = sizeof (struct foo { int i0; int i1; })); d; d--)    c = sizeof (struct foo);  if (!(a <= b && b == c))    abort ();  d = 1;  for (; (b = sizeof (struct foo { int i0; int i1; })), d; d--)    c = sizeof (struct foo { int i0; int i1; int i2; });  if (!(a <= b && b <= c))    abort ();  d = 1;  for (; (b = sizeof (struct foo { int i0; int i1; })), d; d--)    c = sizeof (struct foo);  if (!(a <= b && b == c))    abort ();  d = 1;  for (; d; (b = sizeof (struct foo { int i0; int i1; })), d--)    c = sizeof (struct foo { int i0; int i1; int i2; });  if (!(a <= b && b <= c))    abort ();  d = 1;  for (; d; (b = sizeof (struct foo { int i0; int i1; })), d--)    c = sizeof (struct foo);  if (!(a <= b && b == c))    abort ();  exit (0);}

⌨️ 快捷键说明

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