risc01.c
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 54 行
C
54 行
#include "fail.h"
#include <string.h>
#if defined(__AXP__)
#define UNALIGN __unaligned
#else
#define UNALIGN
#endif
#pragma pack(1)
struct S {
char c;
short s;
long l;
double d;
};
#pragma pack()
char usec( char UNALIGN *p ) {
char v = *p;
(*p)++;
return v;
}
short uses( short UNALIGN *p ) {
short v = *p;
(*p)++;
return v;
}
long usel( long UNALIGN *p ) {
long v = *p;
(*p)++;
return v;
}
double used( double UNALIGN *p ) {
double v = *p;
(*p)++;
return v;
}
int main() {
S *p = new S;
memset( p, 0, sizeof( *p ) );
if( usec( &(p->c) ) != 0 ) fail(__LINE__);
if( uses( &(p->s) ) != 0 ) fail(__LINE__);
if( usel( &(p->l) ) != 0 ) fail(__LINE__);
if( used( &(p->d) ) != 0 ) fail(__LINE__);
if( usec( &(p->c) ) != 1 ) fail(__LINE__);
if( uses( &(p->s) ) != 1 ) fail(__LINE__);
if( usel( &(p->l) ) != 1 ) fail(__LINE__);
if( used( &(p->d) ) != 1 ) fail(__LINE__);
delete p;
_PASS;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?