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

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

[复制链接]
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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版