C求教了

[复制链接]
1816|31
手机看帖
扫描二维码
随时随地手机跟帖
811909|  楼主 | 2018-11-24 15:57 | 显示全部楼层 |阅读模式
mohanwei| | 2018-11-24 16:46 | 显示全部楼层
哪个SB出的题……

使用特权

评论回复
雪山飞狐D| | 2018-11-24 17:18 | 显示全部楼层
本帖最后由 雪山飞狐D 于 2018-11-24 21:43 编辑

     这种为了炫雕技的编码方式不提倡,实际开发中逻辑越清晰越好,玩弄冷门的左值右值,还有逗号表达式技巧问题实属于无聊

使用特权

评论回复
xyz549040622| | 2018-11-24 19:52 | 显示全部楼层
我感觉我一辈子也写不出这么牛X的代码。

使用特权

评论回复
811909|  楼主 | 2018-11-24 20:12 | 显示全部楼层
a,b,c,我先来解释下,a为单片机某一个IO口,输入检测,b局部变量,c为对应的一个bit的全局变量。这是一个程序中的某一句,作用我看懂了,是判断这个a的IO口是高还是低,由于这个函数在1ms定时器中,b++作为一个防抖的。只不过我现在就是不明白这个到底是怎么判断的,最后IO口的状态怎么赋值到这个c的全局变量的。所以求大神细细分析一下

使用特权

评论回复
地瓜patch| | 2018-11-24 23:00 | 显示全部楼层
果真没看懂,坐等高手

使用特权

评论回复
xxzouzhichao| | 2018-11-25 01:50 | 显示全部楼层
很简单啊

使用特权

评论回复
caijie001| | 2018-11-25 08:57 | 显示全部楼层
见到这种代码直接推到重写,这代码的作者是在秀高智商吗???

使用特权

评论回复
royal90| | 2018-11-25 11:02 | 显示全部楼层
实际中就不会这样子写的!!!!

使用特权

评论回复
dirtwillfly| | 2018-11-25 12:33 | 显示全部楼层
加个括号逻辑就清晰了
a?(b=0,c=0):((b < 10)?(b++):(c=1));

使用特权

评论回复
andy520520| | 2018-11-25 17:52 | 显示全部楼层
这样的代码有毛用?

使用特权

评论回复
zyj9490| | 2018-11-25 18:25 | 显示全部楼层
加个if else if......很清晰的。

使用特权

评论回复
地瓜patch| | 2018-11-25 22:12 | 显示全部楼层
能把复杂问题简单化,才是真正的高手

使用特权

评论回复
6688hyc| | 2018-11-26 08:28 | 显示全部楼层
出这题的人 完全是闲的

使用特权

评论回复
renxiaolin| | 2018-11-26 08:40 | 显示全部楼层
这代码不可取,没必要追究其意义

使用特权

评论回复
ayb_ice| | 2018-11-26 09:24 | 显示全部楼层
相当于
if (a != 0)
{
        b=0,c=0;
}
else
{
        if (b < 10)
        {
                b++;
        }
        else
        {
                c=1;
        }
}

使用特权

评论回复
619888476| | 2018-11-26 09:27 | 显示全部楼层
不规范

使用特权

评论回复
gaoyang9992006| | 2018-11-26 12:10 | 显示全部楼层
这种代码用到项目里会被人打的。

使用特权

评论回复
gaoyang9992006| | 2018-11-26 12:11 | 显示全部楼层
一般规定:如果用了复杂的句子,必须用括号将所有能括起来的都给括起来,不要指望大家都看懂你的优先级顺序。

使用特权

评论回复
gaoyang9992006| | 2018-11-26 12:11 | 显示全部楼层
这一类复杂的多目运算符,有个好处,生成的汇编效率更高。

使用特权

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

本版积分规则

18

主题

144

帖子

3

粉丝