typedef struct { int c, d, e, f, g; } D;

void bar (unsigned long, unsigned long);
void foo (D *y)
{
  int x = 0;

  if (y->f == 0)
    x |= 0x1;
  if (y->g == 0)
    x |= 0x2;
  bar ((x << 16) | (y->c & 0xffff), (y->d << 16) | (y->e & 0xffff));
}


syntax highlighted by Code2HTML, v. 0.9.1