打印
[AVR单片机]

谁来解释一下AVRGCC为什么这样编译?算个BUG不?

[复制链接]
1972|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一级菜鸟|  楼主 | 2007-1-26 16:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
int main()
{
    unsigned char Temp[5];

    while(1)
    {    
        Temp[0]=013;
        Temp[1]=13;
        Temp[2]=015;
        Temp[3]=15;
    }

}

编译结果:

9:                Temp[0]=013;
+00000039:   E08B        LDI     R24,0x0B         Load immediate
+0000003A:   8389        STD     Y+1,R24          Store indirect with displacement
10:               Temp[1]=13;
+0000003B:   E08D        LDI     R24,0x0D         Load immediate
+0000003C:   838A        STD     Y+2,R24          Store indirect with displacement
11:               Temp[2]=015;
+0000003D:   E08D        LDI     R24,0x0D         Load immediate
+0000003E:   838B        STD     Y+3,R24          Store indirect with displacement
12:               Temp[3]=15;
+0000003F:   E08F        LDI     R24,0x0F         Load immediate
+00000040:   838C        STD     Y+4,R24          Store indirect with displacement
+00000041:   CFF7        RJMP    PC-0x0008        Relative jump



常量的写法,013居然和13不一样??看不懂了

相关帖子

沙发
zlei| | 2007-1-26 19:08 | 只看该作者

哎呀

回去补习一下C语言,C语言里面013是8进制表示,呵呵!

使用特权

评论回复
板凳
zsmbj| | 2007-1-26 21:25 | 只看该作者

呵呵!名同其人。

使用特权

评论回复
地板
hotpower| | 2007-1-26 21:46 | 只看该作者

~~~

使用特权

评论回复
5
一级菜鸟|  楼主 | 2007-1-27 07:53 | 只看该作者

哈,还真的菜到一定程度了:)

使用特权

评论回复
6
saystar| | 2007-1-29 21:15 | 只看该作者

基本上你的软件数据前面不要加0

0x--是16进制
--是十进制
(八进制最好不要用,容易误导)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

1674

帖子

1

粉丝