bf02.c
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 169 行
C
169 行
#include "fail.h"
typedef unsigned char base;
struct X1 {
base f0 : 1;
base f1 : 1;
base f2 : 1;
base f3 : 1;
base f4 : 1;
base f5 : 1;
base f6 : 1;
base f7 : 1;
int m;
};
struct X1 x1 = { 0, 1, 0, 1, 0, 1, 0, 1, -1 };
void check_X1( struct X1 x1 ) {
if( x1.f0 != 0 ) fail(__LINE__);
if( x1.f1 != 1 ) fail(__LINE__);
if( x1.f2 != 0 ) fail(__LINE__);
if( x1.f3 != 1 ) fail(__LINE__);
if( x1.f4 != 0 ) fail(__LINE__);
if( x1.f5 != 1 ) fail(__LINE__);
if( x1.f6 != 0 ) fail(__LINE__);
if( x1.f7 != 1 ) fail(__LINE__);
if( x1.m != -1 ) fail(__LINE__);
};
struct X2 {
base f0 : 1;
base f1 : 1;
base f2 : 1;
base f3 : 1;
base f4 : 1;
base f5 : 1;
base f6 : 1;
base f7 : 1;
base f8 : 1;
int m;
};
struct X2 x2 = { 0, 1, 0, 1, 0, 1, 0, 1, 1, -1 };
void check_X2( struct X2 x2 ) {
if( x2.f0 != 0 ) fail(__LINE__);
if( x2.f1 != 1 ) fail(__LINE__);
if( x2.f2 != 0 ) fail(__LINE__);
if( x2.f3 != 1 ) fail(__LINE__);
if( x2.f4 != 0 ) fail(__LINE__);
if( x2.f5 != 1 ) fail(__LINE__);
if( x2.f6 != 0 ) fail(__LINE__);
if( x2.f7 != 1 ) fail(__LINE__);
if( x2.f8 != 1 ) fail(__LINE__);
if( x2.m != -1 ) fail(__LINE__);
};
struct X3 {
base f0 : 1;
base f1 : 1;
base f2 : 1;
base f3 : 1;
unsigned f4 : 1;
unsigned f5 : 1;
unsigned f6 : 1;
unsigned f7 : 1;
unsigned f8 : 1;
int m;
};
struct X3 x3 = { 0, 1, 0, 1, 0, 1, 0, 1, 1, -1 };
void check_X3( struct X3 x3 ) {
if( x3.f0 != 0 ) fail(__LINE__);
if( x3.f1 != 1 ) fail(__LINE__);
if( x3.f2 != 0 ) fail(__LINE__);
if( x3.f3 != 1 ) fail(__LINE__);
if( x3.f4 != 0 ) fail(__LINE__);
if( x3.f5 != 1 ) fail(__LINE__);
if( x3.f6 != 0 ) fail(__LINE__);
if( x3.f7 != 1 ) fail(__LINE__);
if( x3.f8 != 1 ) fail(__LINE__);
if( x3.m != -1 ) fail(__LINE__);
};
struct X4 {
base f0 : 1;
base f1 : 1;
base f2 : 1;
base f3 : 1;
int m;
base f4 : 1;
base f5 : 1;
base f6 : 1;
base f7 : 1;
int n;
base f8 : 1;
};
struct X4 x4 = { 0, 1, 0, 1, -1, 0, 1, 0, 1, -1, 1 };
void check_X4( struct X4 x4 ) {
if( x4.f0 != 0 ) fail(__LINE__);
if( x4.f1 != 1 ) fail(__LINE__);
if( x4.f2 != 0 ) fail(__LINE__);
if( x4.f3 != 1 ) fail(__LINE__);
if( x4.m != -1 ) fail(__LINE__);
if( x4.f4 != 0 ) fail(__LINE__);
if( x4.f5 != 1 ) fail(__LINE__);
if( x4.f6 != 0 ) fail(__LINE__);
if( x4.f7 != 1 ) fail(__LINE__);
if( x4.n != -1 ) fail(__LINE__);
if( x4.f8 != 1 ) fail(__LINE__);
};
struct X5 {
base f0 : 1;
base f1 : 1;
base f2 : 1;
base f3 : 1;
int m;
base f4 : 1;
base f5 : 1;
base f6 : 1;
base f7 : 1;
int n;
base f8 : 1;
struct X1 x1;
struct X2 x2;
struct X3 x3;
struct X4 x4;
};
struct X5 x5 = { 0, 1, 0, 1, -1, 0, 1, 0, 1, -1, 1,
{ 0, 1, 0, 1, 0, 1, 0, 1, -1 },
{ 0, 1, 0, 1, 0, 1, 0, 1, 1, -1 },
{ 0, 1, 0, 1, 0, 1, 0, 1, 1, -1 },
{ 0, 1, 0, 1, -1, 0, 1, 0, 1, -1, 1 },
};
void check_X5( struct X5 x5 ) {
if( x5.f0 != 0 ) fail(__LINE__);
if( x5.f1 != 1 ) fail(__LINE__);
if( x5.f2 != 0 ) fail(__LINE__);
if( x5.f3 != 1 ) fail(__LINE__);
if( x5.m != -1 ) fail(__LINE__);
if( x5.f4 != 0 ) fail(__LINE__);
if( x5.f5 != 1 ) fail(__LINE__);
if( x5.f6 != 0 ) fail(__LINE__);
if( x5.f7 != 1 ) fail(__LINE__);
if( x5.n != -1 ) fail(__LINE__);
if( x5.f8 != 1 ) fail(__LINE__);
check_X1( x5.x1 );
check_X2( x5.x2 );
check_X3( x5.x3 );
check_X4( x5.x4 );
};
int main()
{
check_X1( x1 );
check_X2( x2 );
check_X3( x3 );
check_X4( x4 );
check_X5( x5 );
_PASS;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?