opt30.c

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

C
44
字号
#include "fail.h"
#include <limits.h>

#define LIMX    (8)
#define LIM     (1<<(LIMX))
#define INC     ( 1 << (( sizeof( unsigned ) * CHAR_BIT ) - LIMX ) )

static unsigned long c, d;

static void f( unsigned long *ctr, unsigned a )
{
    a = a;
    (*ctr)++;
}

int main()
{
    unsigned limit = LIM;
    unsigned addr;
    unsigned addr_m;

    if( limit != 0 ) {
        addr_m = 0;
        while( addr_m < LIM ) {
            addr = addr_m * INC;
            f( &c, addr );
            if( c == 0 )        // will never be true
                break;
            addr_m++;
        }
        if( c != LIM ) fail(__LINE__);
        addr_m = 0;
        while( addr_m < LIM ) {
            addr = addr_m * INC;
            f( &d, addr );
            addr_m++;
        }
        if( d != LIM ) fail(__LINE__);
    } else {
        fail(__LINE__);
    }
    _PASS;
}

⌨️ 快捷键说明

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