找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 12382|回复: 19
收起左侧

单片机程序开头的uint,uchar,ulong这些变量定义和赋值语句是什么意识?

  [复制链接]
ID:381329 发表于 2018-8-10 11:29 | 显示全部楼层 |阅读模式
作为一个单片机自学者,想求大家帮助解答一下,不懂下面这些程序代码的意思.
是一个关于电子秤的程序:
int weight;
uchar num,s=5;
ulong ad_data=0;
ulong cost=0, total = 0;
ulong price=0;
uchar flag_ok=0;  //ok键的按键次数
uchar pi=0;
uchar flag_dian=0,dian=1;  //小数点的位数,和小数点标志
uchar flag_dian_all=0;
uchar dian_max=1;  //最大的点的位数
uchar flag_jian=0;
uchar cha=0, flag_jia=0, flag_jian;
uchar code str0[]={"Weight:    g   "};
uchar code str1[]={"cost:        "};
uchar code str2[]={"Price:    "};
uchar code str3[]={"Iotal:  "};
uchar code table1[]={"0123456789"};
回复

使用道具 举报

ID:52586 发表于 2018-8-10 17:25 | 显示全部楼层
int weight;   // 这句是定义了一个变量,整数类型,字面意思表示重量,表示重量的数值保存到这这个变量里
uchar num,s=5;   // 这句是定义了两个变量,无符号字符类型, num 和 s, num 一般表示数量, s 不知道。
ulong ad_data=0;   // 这句定义了一个变量,无符号长整数类型, ad_data, 字面意思表示 模数转换后的数值保存在这个变量里
ulong cost=0, total = 0;  // 这句定义了一个两个变量, 无符号长整数类型,cost 一般表示 花费, total 一般表示 总数
ulong price=0;  // 这句定义了一个变量,无符号长整数类型, price 一般表示 价格
uchar flag_ok=0;  //ok键的按键次数  // 这句是定义了一个变量,无符号字符类型
uchar pi=0;  // 这句是定义了一个变量,无符号字符类型
uchar flag_dian=0,dian=1;  //小数点的位数,和小数点标志   // 这句是定义了两个变量,无符号字符类型
uchar flag_dian_all=0;   // 这句是定义了一个变量,无符号字符类型
uchar dian_max=1;  //最大的点的位数   // 这句是定义了一个变量,无符号字符类型
uchar flag_jian=0;  // 这句是定义了一个变量,无符号字符类型
uchar cha=0, flag_jia=0, flag_jian;   // 这句是定义了三个变量,无符号字符类型
uchar code str0[]={"Weight:    g   "};  // 这句是定义了一个字符数组,保存在程序区
uchar code str1[]={"cost:        "};    // 这句是定义了一个字符数组,保存在程序区
uchar code str2[]={"Price:    "};    // 这句是定义了一个字符数组,保存在程序区
uchar code str3[]={"Iotal:  "};    // 这句是定义了一个字符数组,保存在程序区
uchar code table1[]={"0123456789"};    // 这句是定义了一个字符数组,保存在程序区

评分

参与人数 3黑币 +128 收起 理由
NPC-1024 + 8 很给力!
yousunny + 20 很给力!
admin + 100 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:384958 发表于 2018-8-10 13:21 | 显示全部楼层
这不都是定义的变量然后初始化了......
回复

使用道具 举报

ID:295874 发表于 2018-8-10 13:22 | 显示全部楼层
就是程序变量类型申明、定义、赋初值;
回复

使用道具 举报

ID:347467 发表于 2018-8-10 13:22 | 显示全部楼层
这些不是变量定义和赋值吗?
回复

使用道具 举报

ID:384969 发表于 2018-8-10 14:06 | 显示全部楼层
变量类型申明、定义、赋初值;
回复

使用道具 举报

ID:384970 发表于 2018-8-10 14:15 | 显示全部楼层
就是变量定义和赋值a
回复

使用道具 举报

ID:245266 发表于 2018-8-10 17:29 | 显示全部楼层
一段初始化程序
回复

使用道具 举报

ID:385073 发表于 2018-8-10 17:35 | 显示全部楼层
变量定义和宏定义
回复

使用道具 举报

ID:385081 发表于 2018-8-10 17:46 | 显示全部楼层

变量定义和宏定义
回复

使用道具 举报

ID:155507 发表于 2018-8-11 13:45 | 显示全部楼层
在单片机里
#define uchar unsigned char 与
#define uint unsigned int 与
#define ulong unsigned long
的区别或作用
是宏定义。就是说接下来程序你用到uchar或是uint就是表示unsigned char和unsigned int ,简单的说就是可以简化了。uchar uint是数据类型,
uchar表示无符号字节
uint表示无符号整形数
uchar,uint这种的,就是无符号,如果你处理的数据,不带符号,就可以用这两个。在一个,你得看你处理的数值范围,uint范围肯定比uchar大。

uchar是8位的,占一个寄存器,  无符号字符型,范围(0-255)
uint是16位,    占2个寄存器,   无符号整型 范围(0-65,535)
ulong是32位, 占4个寄存器,   无符号整型 范围(0-4,294,967,296)
所以在编译的时候INT型的代码多一些
在XDATA中KEIL的默认编译是CHAR型也占2个寄存器所以相差就不多了
在工程中是要考虑寄存器的和运行时效的 所以能省则省喽
回复

使用道具 举报

ID:308437 发表于 2018-8-12 16:40 | 显示全部楼层
聆烟雨 发表于 2018-8-10 17:25
int weight;   // 这句是定义了一个变量,整数类型,字面意思表示重量,表示重量的数值保存到这这个变量里
...

这位仁兄真的厉害
回复

使用道具 举报

ID:385531 发表于 2018-8-12 17:22 | 显示全部楼层
这些都是定义了无符号的变量啊
回复

使用道具 举报

ID:385645 发表于 2018-8-13 09:25 | 显示全部楼层
定义程序中要用到的变量,并初始化赋初值
回复

使用道具 举报

ID:385318 发表于 2018-8-20 10:02 | 显示全部楼层
u是无符的意思
回复

使用道具 举报

ID:388083 发表于 2018-8-20 12:22 | 显示全部楼层

定义程序中要用到的变量,并初始化赋初值
回复

使用道具 举报

ID:388125 发表于 2018-8-20 14:37 | 显示全部楼层
代表变量定义和赋值,uchar 代表定义无符号字节变量 ulong代表定义无符号长整型变量 int 代表定义整型变量  这些都是定义某个变量的数值长度。uchar code str0[] 代表定义字符数组,并且该数组放置在数据存储区,而不是ram中。
回复

使用道具 举报

ID:387852 发表于 2018-8-20 15:34 | 显示全部楼层
带u的是无符号变量,unsigned的意思,比如char表示的范围是-128-127,uchar的范围则是0-255
回复

使用道具 举报

ID:388178 发表于 2018-8-20 15:47 | 显示全部楼层
是自己定义的
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
回复

使用道具 举报

ID:387920 发表于 2018-8-20 16:01 | 显示全部楼层
宏定义
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表