intel01.c
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 58 行
C
58 行
#include "fail.h"
#if (defined(__386__) || defined(__I86__)) && !defined(__LINUX__)
// verify __interrupt implies default __far
typedef void __interrupt __far (*FAR_INT)( void );
extern void __interrupt int1( void );
void __interrupt __export int2( void )
{
}
void set_vec( void ( __interrupt *p )( void ) )
{
if( sizeof( p ) != sizeof( FAR_INT ) ) fail(__LINE__);
if( sizeof( &int1 ) != sizeof( FAR_INT ) ) fail(__LINE__);
if( sizeof( &int2 ) != sizeof( FAR_INT ) ) fail(__LINE__);
}
void __far *Ptr;
// verify that far pointer <-> long long conversions can generate code
void ptr_cvt( void )
{
void __far *ptr;
long long tmp;
ptr = Ptr;
tmp = (long long)ptr;
++tmp;
ptr = (void __far *)tmp;
Ptr = ptr;
if( Ptr != (void __far *)1 ) fail(__LINE__);
}
#else
void set_vec( int i )
{
i = i;
}
void ptr_cvt( void )
{
}
#endif
int main( void )
{
set_vec( 0 );
ptr_cvt();
_PASS;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?