keil和STM32中数据类型
原文链接:https://blog.csdn.net/whstudio123/article/details/104144306
在 KELI MDK 数据类型中进了如下定义
char 占用 1 个字节
short int 占用 2 字节//注意这里!
int 占用 4 字节
long 占用 4 字节 //注意这里!
long int 占用 4 字节 //注意这里!
float 占用 4 字节
double 占用 8 字节即有如下宏定义
typedef unsigned char uint8; // 无符号 8 位字符型变量
typedef signed char int8; // 有符号 8 位字符型变量
typedef unsigned short uint16; // 无符号 16 位短整型变量
typedef signed short int16; // 有符号 16 位短整型变量
typedef unsigned int uint32; // 无符号 32 位整型变量
typedef signed int int32; // 有符号 32 位整型变量
typedef float fp32; // 单精度浮点数(32 位长度)
typedef double fp64; // 双精度浮点数(64 位长度)
注:C 语言中的种类数据:整型:int short long 实型:float, double 。其中,Unsigned 为无符号, signed 有符号。
STM32 采用了大量的固件库,其中在 2.0 库中有 24 个数据类型如下
typedef unsigned char u8;/*无符号 8 位变量**/0~255 一字节
typedef signed char s8;/**有符号 8 位变量*/-128~127
typedef volatile unsigned char vu8;/* 易变的 8 位无符号变量**/
typedef volatile signed char vs8;/* 易变的 8 位有符号变量*/
typedef unsigned char const uc8; /* 只读的 8 位无符号变量 */
typedef signed char const sc8; /* 只读的 8 位有符号变量 */
typedef volatile unsigned char const vuc8; /* 易变只读的 8 位无符变量*/
typedef volatile signed char const vsc8; /* 易变只读 8 位有符号变量 */
typedef unsigned short u16; /*16 位短整型无符号变量**/0~65535 两字节
typedef signed short s16; /*16 位短整型有符号变量**/-32768~32767 两字节
typedef volatile unsigned short vu16;
typedef volatile signed short vs16;
typedef unsigned short const uc16; /* Read Only */
typedef signed short const sc16; /* Read Only */
typedef signed short const sc16; /* Read Only */
typedef volatile unsigned short const vuc16; /* Read Only */
typedef volatile signed short const vsc16; /* Read Only */
typedef unsigned long u32; /*32 位长整型无符号变量**/0~(2^32-1)四字节
typedef signed long s32; //*[(-2^32)/2]~ [(-2^32)/2-1]四字节
typedef volatile unsigned long vu32;
typedef volatile signed long vs32;
typedef unsigned long const uc32; /* Read Only */
typedef signed long const sc32; /* Read Only */
typedef volatile unsigned long const vuc32; /* Read Only */
typedef volatile signed long const vsc32; /* Read Only */
对部分数据类型后面作了注释,其它类型类推。对于float int 编译器中不能看到其定义(估计已编译了)。
不同类型数据的混合运算在C 语言中,不同类型的数据间是可以混合运算的。在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换的规则如下: