MF32BSP_XerolySkinner
2.0.0
C++版本的驱动库
载入中...
搜索中...
未找到
bsp_Device
varint.h
浏览该文件的文档.
1
/*----------------------------------------------------------------------------------------------------
2
#
3
# Copyright (c) 2022 Yuankang Liang(XerolySkinner)
4
#
5
# 本软件按原样提供,无任何明示或暗示
6
# 在任何情况下,作者都不承担任何损害赔偿责任
7
#
8
# 使用的许可声明:
9
# 1. 不得歪曲本软件的来源,你不能声称你编写了原始软件.
10
# 2. 免费授予以任何目的,前提是版权声明出现在所有副本中.
11
# 并且版权声明和许可声明同时出现.
12
# 3. 你有使用,复制,修改,分发,和销售本软件的许可.
13
# 4. 如果你在产品中使用,产品文档中的声明是赞赏的但不是必须的.
14
# 5. 本通知不得从任何来源删除或更改.
15
#
16
# Yuankang Liang(XerolySkinner)
17
# E-mail:zabbcccbbaz@163.com
18
# QQ:2715099320
19
# Mobile Phone:13005636215
20
#
21
# All rights reserved.
22
*/
23
34
#pragma once
35
#include "stdint.h"
37
//----------------------------------------------------------------------------------------------------
38
// 程序
39
//
40
typedef
uint8_t
u8
;
41
typedef
uint16_t
u16
;
42
typedef
uint32_t
u32
;
43
typedef
uint64_t
u64
;
44
45
typedef
int8_t
i8
;
46
typedef
int16_t
i16
;
47
typedef
int32_t
i32
;
48
typedef
int64_t
i64
;
49
50
typedef
volatile
u8
vu8
;
51
typedef
volatile
u16
vu16
;
52
typedef
volatile
u32
vu32
;
53
typedef
volatile
u64
vu64
;
54
55
typedef
volatile
i8
vi8
;
56
typedef
volatile
i16
vi16
;
57
typedef
volatile
i32
vi32
;
58
typedef
volatile
i64
vi64
;
60
//----------------------------------------------------------------------------------------------------
61
// 位宏
62
#define P8(x) ((u8*)(&(x)))
63
#define Pn8(x,y) (((u8*)(&(x)))[y])
64
#define P16(x) ((u16*)(&(x)))
65
#define Pn16(x,y) (((u16*)(&(x)))[y])
66
#define P32(x) ((u32*)(&(x)))
67
#define Pn32(x,y) (((u32*)(&(x)))[y])
68
69
#define DelLb(x) (x & (x - 1))
70
#define qDelLb(x) (x=(x & (x - 1)))
71
72
#define toBool(x) (x!=0)
73
#define uBit(x,y) (x&(1<<y))
74
#define tBit(x,y) (toBool(uBit(x,y)))
75
76
#define sBit(x,y) (x|(1<<y))
77
#define rBit(x,y) (x&(~(1<<y)))
78
#define mBit(x,y,z) ((z)?sBit(x,y):rBit(x,y))
79
80
#define LpAdd(x,y) ((x+1)<y?x+1:0)
81
#define LpDec(x,y) (x>0?x-1:y-1)
82
#define qLpAdd(x,y) (x=(x+1)<y?x+1:0)
83
#define qLpDec(x,y) (x=x>0?x-1:y-1)
85
vu8
volatile u8 vu8
8位无符号易变类型
Definition:
varint.h:50
u64
uint64_t u64
64位无符号数类型
Definition:
varint.h:43
i32
int32_t i32
32位有符号数类型
Definition:
varint.h:47
vu16
volatile u16 vu16
16位无符号易变类型
Definition:
varint.h:51
i64
int64_t i64
64位有符号数类型
Definition:
varint.h:48
vi32
volatile i32 vi32
32位有符号易变类型
Definition:
varint.h:57
u8
uint8_t u8
8位无符号数类型
Definition:
varint.h:40
vi16
volatile i16 vi16
16位有符号易变类型
Definition:
varint.h:56
vu32
volatile u32 vu32
32位无符号易变类型
Definition:
varint.h:52
vu64
volatile u64 vu64
64位无符号易变类型
Definition:
varint.h:53
u16
uint16_t u16
16位无符号数类型
Definition:
varint.h:41
i16
int16_t i16
16位有符号数类型
Definition:
varint.h:46
vi8
volatile i8 vi8
8位有符号易变类型
Definition:
varint.h:55
i8
int8_t i8
8位有符号数类型
Definition:
varint.h:45
vi64
volatile i64 vi64
64位有符号易变类型
Definition:
varint.h:58
u32
uint32_t u32
32位无符号数类型
Definition:
varint.h:42
制作者
1.9.5