diag0001.c

来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 118 行

C
118
字号
/*
  test for constraint checking for bit-fields
*/
typedef unsigned char UC;
typedef unsigned short US;
typedef unsigned long UL;
typedef signed char SC;
typedef signed short SS;
typedef signed long SL;

struct S1 {
    UC
    	bc0 : -1,
	bc1 : 8-1,
	bc2 : 8,
	bc3 : 8+1;
    SC
	bc4 : 8-1,
	bc5 : 8,
	bc6 : 8+1;
    US
    	bs0 : -1,
	bs1 : 16-1,
	bs2 : 16,
	bs3 : 16+1;
    SS
	bs4 : 16-1,
	bs5 : 16,
	bs6 : 16+1;
    UL
    	bl0 : -1,
	bl1 : 32-1,
	bl2 : 32,
	bl3 : 32+1;
    SL
	bl4 : 32-1,
	bl5 : 32,
	bl6 : 32+1;
} v1;

struct S2 {
    nb0 : 1,
    nb1 : 2;
    friend q1 : 1;
    virtual q2 : 1;
    inline q3 : 1;
    const c1 : 1;
    volatile v1 : 1;
    const volatile cv1 : 1;
    typedef int
	TI,
	t1 : 1,
	ZI;
    S1 bt : 1;
    int zb : 0;
} v2;

struct S3 {
    UC f1;
    int : 0;
    UC
    	bc0 : 1,
	    : 2,
	bc1 : 2,
	    : 0,
	bc2 : 3,
	bc3 : 4,
	bc4 : 5,
	bc5 : 6,
	bc6 : 7,
	bc7 : 8;
    SC
    	bc8 : 1,
	bc9 : 2,
	bca : 3,
	bcb : 4,
	bcc : 5,
	bcd : 6,
	bce : 7,
	bcf : 8;
    US
    	bs0 : 1,
	bs1 : 2,
	bs2 : 3,
	bs3 : 4,
	bs4 : 5,
	bs5 : 6,
	bs6 : 7,
	bs7 : 8;
    SS
    	bs8 : 1,
	bs9 : 2,
	bsa : 3,
	bsb : 4,
	bsc : 5,
	bsd : 6,
	bse : 7,
	bsf : 8;
    UL
    	bl0 : 1,
	bl1 : 2,
	bl2 : 3,
	bl3 : 4,
	bl4 : 5,
	bl5 : 6,
	bl6 : 7,
	bl7 : 8;
    SL
    	bl8 : 1,
	bl9 : 2,
	bla : 3,
	blb : 4,
	blc : 5,
	bld : 6,
	ble : 7,
	blf : 8;
} v3;

⌨️ 快捷键说明

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