bitreverse-10.c
来自「Mac OS X 10.4.9 for x86 Source Code gcc」· C语言 代码 · 共 65 行
C
65 行
/* APPLE LOCAL file *//* { dg-do run { target powerpc*-*-darwin* } } */extern "C" void abort();typedef struct TestStateNorm{ unsigned int fBlah : 7; // unsigned int fUnused : 2; // Currently Unused unsigned int : 0; unsigned int fBlah2 : 7; // unsigned int fUnused2: 2; // Currently Unused} TestStateNorm;TestStateNorm v1norm = { 5, 1, 6, 2 };union u1 { TestStateNorm tsn; unsigned int raw[2];} unorm = { 5, 1, 6, 2 };#pragma reverse_bitfields on#pragma ms_struct ontypedef struct TestState{ unsigned int fBlah : 7; // unsigned int fUnused : 2; // Currently Unused unsigned int : 0; unsigned int fBlah2 : 7; // unsigned int fUnused2 : 2; // Currently Unused} TestState;TestState v1 = { 5, 1, 6, 2 };union u2 { TestState ts; unsigned int raw[2];} u = { 5, 1, 6, 2 };int main(){ if (v1norm.fBlah != 5) abort (); if (v1norm.fUnused != 1) abort (); if (v1norm.fBlah2 != 6) abort (); if (v1norm.fUnused2 != 2) abort (); if (u.ts.fBlah != 5) abort (); if (u.ts.fUnused != 1) abort (); if (u.ts.fBlah2 != 6) abort (); if (u.ts.fUnused2 != 2) abort (); if (unorm.tsn.fBlah != 5) abort (); if (unorm.tsn.fUnused != 1) abort (); if (unorm.tsn.fBlah2 != 6) abort (); if (unorm.tsn.fUnused2 != 2) abort (); if (v1.fBlah != 5) abort (); if (v1.fUnused != 1) abort (); if (v1.fBlah2 != 6) abort (); if (v1.fUnused2 != 2) abort (); if (unorm.raw[0] != 0x0a800000) abort(); if (unorm.raw[1] != 0x0d000000) abort(); if (u.raw[0] != 0x00000085) abort(); if (u.raw[1] != 0x00000106) abort(); return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?