#include <stdio.h>
#include <stdlib.h >
#include <string.h>
#include <conio.h>
#include <malloc.h>
#include <math.h>
#ifndef _MACRO_h_
#define _MACRO_h_
#define N 4
#define INT1 char
#define UINT1 unsigned char
#define UINT2 unsigned short
#define UINT4 unsigned long
#define MC_GET_CHAR(__data__) (*((char *)(__data__)))
#define MC_GET_SHORT(__data__) ((UINT2)(( ((UINT2)(*((char *)(__data__))))<<8 )|( ((UINT2)(*((char *)(__data__)+1)))&0x00ff )))
#define MC_GET_LONG(__data__) ( ( ((UINT4)MC_GET_SHORT((__data__)))<<16 )|( ((UINT4)MC_GET_SHORT(__data__+2))&0x0000ffff ) )
#define MC_GET_3BN(__data__) ( ( ((UINT4)MC_GET_CHAR((__data__)))<<16 )|( ((UINT4)MC_GET_SHORT(__data__+1))&0x0000ffff ) )
typedef struct nodeRecord
{
UINT4 : 24;
UINT4 dispclass : 4;
UINT4 brunch : 3;
UINT4 flag : 1;
}NodeInfor;
typedef struct roadRecord
{
UINT1 recordTotalSize[2];
UINT1 linkID[4];
UINT1 roadNameSize[2];
NodeInfor nodeInfor;
char* roadName;
}RoadInfor;
typedef struct textRecord
{
UINT1 dispclass;
UINT1 brunch;
UINT1 roadnameflag;
}TextInfor;
typedef union UINT4union
{
UINT1 ch[4];
UINT4 num;
}unionUINT4;
typedef union UINT2union
{
UINT1 ch[2];
UINT2 num;
}unionUINT2;
#endif
//end macro.h