packed4.c

来自「xml大全 可读写调用率很高 xml大全 可读写调用率很高」· C语言 代码 · 共 77 行

C
77
字号
// { dg-do run }// Copyright (C) 2003 Free Software Foundation, Inc.// Contributed by Nathan Sidwell 15 Jul 2003 <nathan@codesourcery.com>// Packed fields are unsuitable for direct reference binding.struct Unpacked { int i; };int ConstRef (int const &p, int const *ptr, int v){  if (p != v)    return 1;  if (&p == ptr)    return 2;  return 0;}int ConstRef (Unpacked const &p, Unpacked const *ptr, int v){  if (p.i != v)    return 1;  if (&p == ptr)    return 2;  return 0;}int Val (int p, int v){  if (p != v)    return 1;  return 0;}int Val (Unpacked p, int v){  if (p.i != v)    return 1;  return 0;}struct  __attribute__ ((packed)) Packed{  char c;  int i;  Unpacked u;  char t;};int Foo (Packed &p, int i, int ui){  int r;    if ((r = Val (p.i, i)))    return r;  if ((r = Val (p.u.i, ui)))    return r + 2;  if ((r = Val (p.u, ui)))    return r + 4;    if ((r = ConstRef (p.i, &p.i, i)))    return r + 6;  return 0;}int main (){  Packed p;  p.c = 0x12;  p.i = 0x3456789a;  p.u.i = 0xbcdef00f;  p.t = 0xed;  return Foo (p, 0x3456789a, 0xbcdef00f);}

⌨️ 快捷键说明

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