您的位置 首页 发布

STM32——C言语数据类型

在编程过程中,不同的CPU,其数据类型的意义各不相同,所以一定要注意相应变量数据类型的定义和转换,否则在计算中可能会出现不确定的错误

在编程进程中,不同的CPU,其数据类型的含义各不相同,所以必定要留意相应变量数据类型的界说和转化,否则在核算中可能会呈现不确定的过错。

(一)C言语中的品种数据

整型:int short long

实型:float double

STM32中的数据类型十分的多,常用的变量,文件中的界说如下:

/* exact-width signed integer types */
typedef signed char int8_t;
typedef signed short int int16_t;
typedef signed int int32_t;
typedef signed __int64 int64_t;

/* exact-width unsigned integer types */
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
typedef unsigned __int64 uint64_t;

typedef int32_t s32;
typedef int16_t s16;
typedef int8_t s8;

typedef uint32_t u32;
typedef uint16_t u16;
typedef uint8_t u8;

还有float int编译器中不能看到其界说(估量已编译了)。

因而在STM32编程中,常用的数据类型有:char(字符型),u8,u16 ,u32,但是在一些核算中,涉及到负数,小数,因而要用到:int float doulbe 型。

其间u8——1个字节,无符号型(不能表达负数,假如用来当作负数的话,就出错了);

u16 ——2个字节,无符号型(参看前边STM32f10x.h中的界说);

u32——4个字节,无符号型;

int——4个字节,有符号型,能够表达负整数;

float ——4个字节,有符号型,能够表达负数/小数;

double——8个字节,有符号弄,能够表达负数/小数;

(二)不同类型数据的混合运算

在C言语中,不同类型的数据间是能够混合运算的。在进行运算时,不同类型的数据要先转化成同一类型,然后进行运算。转化的规矩如下:

留意:箭头的方向只表明数据类型等级的凹凸,由低向高转化,这个转化进程是一步到位的。

(三)数据类型转化规矩

各类数据类型的转化,分为两种方法:隐式(编译软件主动完结),显式(程序强制转化)

隐式转化规矩:

字符必须先转化为整数(C言语规则字符类型数据和整型数据之间能够通用)
short型转化为int型(同归于整型)
float型数据在运算时一概转化为双精度(double)型,以进步运算精度(同归于实型)
赋值时,一概是右部值转化为左部类型
[注]
当整型数据和双精度数据进行运算时,C先将整型数据转化成双精度型数据,再进行运算,成果为双精度类型数据
当字符型数据和实型数据进行运算时,C先将字符型数据转化成实型数据,然后进行核算,成果为实型数据

显式转化规矩:

例:(int)(x+y);

注:强制类型转化时,得到一个所需求的中心变量,本来变量的类型未发生变化。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/fabu/259973.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部