博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
嵌入式开发常用数据类型详解
阅读量:3965 次
发布时间:2019-05-24

本文共 1664 字,大约阅读时间需要 5 分钟。

嵌入式开发中的常用数据类型

嵌入式开发主要用到的是C语言,C语言中的基本数据类型主要有数值类型字符类型

在这里插入图片描述这里我们主要就整形和字符型数据进行讲解

  1. char(字符型)

众所周知,在计算机中,计算机只能识别0,1字符,这里就牵扯到编码的问题,在c语言中采用ASCII编码,包括0-127共128个字符,char类型就是为了解决字符的编码而出现的,char类型的大小为1个字节,范围为-127~127,从0-127每个数值代表一个ASCII字符。

#include 
void main(){
printf("**************char类型测试********************\n"); char a=48; printf("a=%d,a='%c'\n",a,a); char b=a+1; printf("b=%d,b='%c'\n",b,b); char c=a+2; printf("c=%d,c='%c'",c,c); }

运行结果

在这里插入图片描述 从上面代码可以看出,char类型的变量可以和int类型的数值进行加法减法操作,当以%d的形式输出的时候就是char的值,以%c类型输出的时候就是这个char变量所表示的字符。
其实在c语言中char类型就是和int类似的整形,只不过char可以表示的范围会更小,在嵌入式开发中经常可以看到使用char类型表示一个数字进行加减法以及乘法操作。

2、short int(短整型)

3、int(整形)
4、long(长整型)
这三种基本上没什么差别,主要区别在于数据长度不一样,可以表示的数据范围不同
这三种类型的长度在不同的计算机和操作系统上时可能会有不同

5、在嵌入式开发中还会经常遇到像uint_8,uint_16,int_8,int_16,等数据类型,刚刚做嵌入式开发的同学可能会很迷惑,其实这些类型并不是新的数据,而是在c语言原有数据类型的基础上通过typedef关键字重定义的数据类型的别名。

这是 因为在不同平台和编译器上会产生类型长度的差异,而在写嵌入式C代码时,经常会遇到代码移植的问题,通过重定义数据类型可以解决这一问题。
常用宏定义数据类型

//4.重定义基本数据类型(类型别名宏定义)typedef unsigned char        uint_8;   // 无符号8位数,字节typedef unsigned short int   uint_16;  // 无符号16位数,字typedef unsigned long int    uint_32;  // 无符号32位数,长字typedef unsigned long long   uint_64;typedef char                   int_8;    // 有符号8位数typedef short int            int_16;   // 有符号16位数typedef int                  int_32;   // 有符号32位数typedef long long            int_64;//不优化类型typedef volatile uint_8      vuint_8;  // 不优化无符号8位数,字节typedef volatile uint_16     vuint_16; // 不优化无符号16位数,字typedef volatile uint_32     vuint_32; // 不优化无符号32位数,长字typedef volatile int_8       vint_8;   // 不优化有符号8位数typedef volatile int_16      vint_16;  // 不优化有符号16位数typedef volatile int_32      vint_32;  // 不优化有符号32位数

转载地址:http://owezi.baihongyu.com/

你可能感兴趣的文章
Ruby on Rails(ROR) 小结(一) 通过Schema Migrations来创建数据表
查看>>
form表单post请求发送及回收
查看>>
confluence5.8.10 安装与破解
查看>>
Testlink使用文档
查看>>
Ruby on Rails(ROR) 实例开发之一 配置数据库Mysql
查看>>
Ruby on Rails(ROR) 实例开发之一 创建开发项目环境
查看>>
Ruby on Rails(ROR) 实例开发之一 创建数据表
查看>>
Android_Note(一)——主题界面设计
查看>>
Android_Note(二)——主界面功能
查看>>
Android开发之——子线程中使用Toast或者更新UI
查看>>
Android开发之——消息模式Toast.makeText的常见用法
查看>>
Android开发之——assets目录下资源使用总结
查看>>
Android开发之——FilenameFilter文件过滤器
查看>>
Ruby on Rails(ROR) 实例开发之一 scaffold创建框架
查看>>
转: 我的android studio学习日记
查看>>
Android_Note(三)——添加、更新、保存记事本功能
查看>>
Ruby 的 Test::Unit
查看>>
创建数据方法
查看>>
JUnit单元测试的几个规律总结
查看>>
QTP之网页链接
查看>>