你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

什么也不管说,什么也不敢问

[复制链接]
tanic 提问时间:2019-5-18 10:23 /
void main()
{       
        uint32_t t1=5,t2=10;
        uint8_t i,t3=0,t4=0;
       
        for(i=0;i<10;i++)
        {
                if(t1*+i < t2)//不报错 知识盲区了
                {
                        t3++;
                }
                else
                {
                        t4++;
                }
        }
        printf("t3=%d,t4=%d",t3,t4);
       while(1);
}

<
收藏 评论8 发布时间:2019-5-18 10:23

举报

8个回答
与龙共舞 回答时间:2019-5-18 14:24:32

t1*i    < == >  t1*+i
edmundlee 回答时间:2019-5-18 14:53:35
我用V6的编译器是会发警告
是不是你把警告屏蔽了?

kstwork 回答时间:2019-5-18 18:51:10
keil 的默认编译器确实不会报错
stm1024 回答时间:2019-5-18 20:48:16
这个真的是有点奇怪,如果是*t+i还好理解一些
radio2radio 回答时间:2019-5-18 22:02:01
我试了一下,我的MDK,armcc v5,
把 t1*+i 里面的+号,当成了 i 的正负号。 换成负号,也不报错,结果变成t1乘负的i。
fen1212 回答时间:2019-5-21 16:36:14
会有警告的
andeyqi 回答时间:2019-5-21 18:11:34
反汇编看了下:
void main()
{        
   10420:        e92d4800         push        {fp, lr}
   10424:        e28db004         add        fp, sp, #4
   10428:        e24dd010         sub        sp, sp, #16
        uint32_t t1=5,t2=10;
   1042c:        e3a03005         mov        r3, #5
   10430:        e50b300c         str        r3, [fp, #-12]
   10434:        e3a0300a         mov        r3, #10
   10438:        e50b3010         str        r3, [fp, #-16]
        uint8_t i,t3=0,t4=0;
   1043c:        e3a03000         mov        r3, #0
   10440:        e54b3006         strb        r3, [fp, #-6]
   10444:        e3a03000         mov        r3, #0
   10448:        e54b3007         strb        r3, [fp, #-7]

        for(i=0;i<10;i++)
   1044c:        e3a03000         mov        r3, #0
   10450:        e54b3005         strb        r3, [fp, #-5]
   10454:        ea00000f         b        10498 <main+0x78>
        {
                if(t1*+i < t2)//不报错 知识盲区了
   10458:        e55b3005         ldrb        r3, [fp, #-5]
   1045c:        e51b200c         ldr        r2, [fp, #-12]
   10460:        e0020392         mul        r2, r2, r3
   10464:        e51b3010         ldr        r3, [fp, #-16]
   10468:        e1520003         cmp        r2, r3
   1046c:        2a000003         bcs        10480 <main+0x60>

和1#楼 观点一致 t1*+i 等同 t1*i
你若安好_清风徐来 回答时间:2019-5-27 10:55:57
我觉得这样挺好的  哈哈哈哈   当正号处理估计写程序那个已经预料到这种情况了

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版