乐_乐(顺) 发表于 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)

yimenwang 发表于 2012-9-17 19:02:27

楼上正解:lol

乐_乐(顺) 发表于 2012-9-17 21:50:00

邓维安 发表于 2012-9-17 16:22 static/image/common/back.gif
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

lanxix 发表于 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 static/image/common/back.gif
int j;
for(j=1;j

解释的很清楚,谢谢!

乐_乐(顺) 发表于 2012-9-21 13:25:18

lanxix 发表于 2012-9-19 14:52 static/image/common/back.gif
char=-128~127
byte=0~255
byte=unsigned char两个都是8位


谢谢,我明白了~~~
页: [1]
查看完整版本: 初学者的疑问。。。