⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 osdef.h

📁 C代码编程中常用的数学计算的宏定义
💻 H
字号:
 
#ifndef _OS_DEF_H_
#define _OS_DEF_H_
/******************************************************************/

#include <stdio.h>
#include <time.h>

/*---------------------------------------------------------------------------*/
#ifdef __cplusplus
extern "C" {
#endif
/*---------------------------------------------------------------------------*/
	

#ifndef WIN32

typedef unsigned long  DWORD;
typedef unsigned char  BYTE;
typedef signed char    CHAR;
typedef unsigned short WORD;
typedef int INT;

#else

#include <windows.h>

#endif


typedef BYTE* BUFFER;


#ifndef NULL
  #define NULL  0
#endif

#ifndef FALSE
  #define FALSE  0
#endif

#ifndef False
  #define False  0
#endif

#ifndef TRUE
  #define TRUE   1
#endif

#ifndef True
  #define True   1
#endif

#define EQUAL(a,b)     ((a)==(b))
#define NOTEQUAL(a,b)  ((a)!=(b))

#define MAX2(a, b)       ((a)>(b)?(a):(b))
#define MIN2(a, b)       ((a)<(b)?(a):(b))

#define MID3(a, b, c)    (((a)>(b))?(((b)>(c))?(b):(((a)>(c))?(c):(a))):(((a)>(c))?(a):(((b)>(c))?(c):(b))))
#define MAX3(a, b, c)    (MAX2((a), MAX2((b), (c))))
#define MIN3(a, b, c)    (MIN2((a), MIN2((b), (c))))

#define IO_CTRL     0
#define IO_OFF      (IO_CTRL+0)
#define IO_ON       (IO_CTRL+1)
#define IO_READ     (IO_CTRL+2)
#define IO_WRITE    (IO_CTRL+3)
#define IO_INIT     (IO_CTRL+4)
#define IO_RESET    (IO_CTRL+5)

/* ----------------------------------------------------------
*
*/

#ifndef WIN32
    #define BIG_ENDIAN
#else
    #define LITTLE_ENDIAN
#endif


#define c_htons(A) \
    (WORD)((((WORD)(A) & 0xFF00) >> 8)\
         | (((WORD)(A) & 0x00FF) << 8))

#define c_htonl(A) \
    (DWORD)((((DWORD)(A) & 0xFF000000) >> 24)\
          | (((DWORD)(A) & 0x00FF0000) >> 8)\
          | (((DWORD)(A) & 0x0000FF00) << 8)\
          | (((DWORD)(A) & 0x000000FF) << 24))


#if defined(BIG_ENDIAN)

#define htons(A) (A)
#define htonl(A) (A)
#define ntohs(A) (A)
#define ntohl(A) (A)

#define xhtons(A) c_htons(A)
#define xhtonl(A) c_htonl(A)
#define xntohs(A) c_htons(A)
#define xntohl(A) c_htonl(A)

#elif defined(LITTLE_ENDIAN)

#define htons(A) c_htons(A)
#define htonl(A) c_htonl(A)
#define ntohs(A) c_htons(A)
#define ntohl(A) c_htonl(A)
#define xhtons(A) (A)
#define xhtonl(A) (A)
#define xntohs(A) (A)
#define xntohl(A) (A)

#else
  #error "User Must define LITTLE_ENDIAN or BIG_ENDIAN!!!"
#endif


#define GETBIT(src,sp)        (((src)>>(sp))&0x1)
#define SETBIT(type,src,sp,value)  (src)=(type)((src)&(type)(~(0x1<<(sp))))|(type)(((value)&0x1)<<(sp))
#define MTMID(gid,tid)       (((DWORD)((BYTE)(gid)))<<16|((WORD)(tid)))

/*---------------------------------------------------------------------------*/
#define FRIEND(str)  str _##str##_member
#define PUBLIC
#define PROTECTED

#define BUFDEF_ATTRI(buf,type,pos)      (*(volatile type*)(buf+(pos)))
#define BUFDEF_ARRAY(buf,type,len,pos)  ((type*)(&(BUFDEF_ATTRI(buf,type,pos))))

#define IsNull(nul) ((nul)==NULL)
/*---------------------------------------------------------------------------*/

/*---------------------------------------------------------------------------*/
#ifdef __cplusplus
}// extern "C" 
#endif
/*---------------------------------------------------------------------------*/

/******************************************************************/
#endif//_OS_DEF_H_

⌨️ 快捷键说明

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