based01.c

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

C
32
字号
#include "fail.h"

#if defined( M_I86 ) || defined( M_I386 )

#include <i86.h>

int main( void )
{
    char                    c0, c1, c2, c3;
    char __based( void )    *off;
    __segment               seg;

    c0 = 0xAA;

    off = (char __based( void ) *)FP_OFF( &c0 );
    seg = FP_SEG( &c0 );

    // Test various ways of data access through based pointer
    c1 = *(seg:>off);
    c2 = *(char __based( seg ) *)off;
    c3 = ((char __based( seg ) *)off)[0];

    if( c0 != c1 || c1 != c2 || c2 != c3 ) fail(__LINE__);
    _PASS;
}

#else

ALWAYS_PASS

#endif

⌨️ 快捷键说明

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