极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13365|回复: 8

初学者的疑问。。。

[复制链接]
发表于 2012-9-17 15:36:11 | 显示全部楼层 |阅读模式
本帖最后由 乐_乐(顺) 于 2012-9-17 15:40 编辑

unsigned char j;
for(j=1;j<=6;j++)
是否等于 for(int j=1;j<=6;j++)
对于J这个字符,两者性质上有什么区别?
另外,void用于子程序的格式是什么?void style_1 (void),括号内的void和括号外的void有什么说法?
回复

使用道具 举报

发表于 2012-9-17 16:22:23 | 显示全部楼层
unsigned char=uchar; unsigned int=uint说起这个来要扯出来的东西就比较多了。uchar是一个8位无符号数,表示范围0到255,而uint是十六位无符号数,表示范围0到65535.但是要注意的是8位单片机当中字宽仅有8位,如果用编译器的话,假如采用uchar类型数据,它会给你分配一个寄存器(8位);但是如果采用uint的话,必须要两个寄存器才能完全表达数据的大小。单片机从寄存器取操作数,也就是一个处理的快,一个相对处理得慢。当然十六位的数是如何进行操作数寻址如果用C的话其实关心必要性不大~
OK?
那么第二个问题,

前一个void是声明这个函数,为了让编译器找到这个函数,第二个括号内的void是指这个函数的值。比如你用void style_1(int m),那么每次调用这个函数的时候,这个函数的处理值就是int m ,当然最后实现的效果也要根据你在函数中写来处理这个m程序而定,比如你可以把这个函数写成style_1(一个int值,比如7858)
回复 支持 反对

使用道具 举报

发表于 2012-9-17 19:02:27 | 显示全部楼层
楼上正解
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-9-17 21:50:00 | 显示全部楼层
邓维安 发表于 2012-9-17 16:22
unsigned char=uchar; unsigned int=uint说起这个来要扯出来的东西就比较多了。uchar是一个8位无符号数, ...

虽然,还不是很明白,计算机原理我是小白,但是,对你那么耐心的解释表示敬意,谢谢!
回复 支持 反对

使用道具 举报

发表于 2012-9-19 13:29:10 | 显示全部楼层
int j;
for(j=1;j<=6;j++)
等于 for(int j=1;j<=6;j++)
unsigned char j 不等于 int j   小番茄不等于大番茄。。虽然都是番茄

void style_1 (void)  等于  void style_1 ()  括号里没东西默认为写了个void
回复 支持 反对

使用道具 举报

发表于 2012-9-19 14:52:11 | 显示全部楼层
char=-128~127
byte=0~255
byte=unsigned char  两个都是8位

int= -32,768 to 32,767
unsigned int=0~65535

变量适合自己用就行了
回复 支持 反对

使用道具 举报

发表于 2012-9-19 18:03:06 | 显示全部楼层
函数参数定义成 byte 为什么不能编译?对于地址来说一般都是8位的,定义成int 有些浪费,那么如何才能使用8位地址呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-9-21 13:24:49 | 显示全部楼层
麽麽茶㊣ 发表于 2012-9-19 13:29
int j;
for(j=1;j

解释的很清楚,谢谢!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-9-21 13:25:18 | 显示全部楼层
lanxix 发表于 2012-9-19 14:52
char=-128~127
byte=0~255
byte=unsigned char  两个都是8位

谢谢,我明白了~~~
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-13 01:56 , Processed in 0.043712 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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