union-init.c

来自「用于进行gcc测试」· C语言 代码 · 共 63 行

C
63
字号
/* { dg-do run } *//* { dg-options "-std=gnu99" } *//* Cast to union is a GNU C extension.   Based on the test from ../dfp/.  */extern void abort (void);union u{  long _Fract lf;  double d;};union n{  double d;  _Fract f;};int main (){  static union u u1 = { 0.1lr };  static union u u2 = { 0.2lr };  static union u u4 = { 0.0 };  static union n n1 = { 0.3r };  static union n n2 = { 3.25 };  long _Fract lf;  _Fract f;  double d;  if (u1.lf != 0.1lr)    abort ();  if (u2.lf != 0.2lr)    abort ();  /* cast fixed-point to union type.  */  lf = 0.4lr;  f = 0.5r;  d = 3.25;  u4 = (union u) lf;  if (u4.lf != 0.4lr)    abort ();  u4 = (union u) d;  if (u4.d != 3.25)    abort ();  n1 = (union n) f;  if (n1.f != 0.5r)    abort ();  n1 = (union n)d;  if (n1.d != 3.25)    abort ();  return 0;}

⌨️ 快捷键说明

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