美文网首页iOS学习HTML5 专栏程序员
iOS C语言判断语句if(n==1)与if(1==n)的区别

iOS C语言判断语句if(n==1)与if(1==n)的区别

作者: 石虎132 | 来源:发表于2018-01-30 10:36 被阅读219次

    //联系人:石虎 QQ:1224614774 昵称:嗡嘛呢叭咪哄

    一、概念

    C语言中两种if语句判断方式。请问哪种写法更好?为什么?

     int n;

     if (n == 1) // 第一种判断方式

     if (1 == n) // 第二种判断方式

    二、分析

     if (i   == 1)

     004014CF       cmp                   dword   ptr   [ebp-4],1

     004014D3       jne                   main+2Eh   (004014de)

     if (2 ==   i)

     004014DE       cmp                   dword   ptr   [ebp-4],2

     004014E2 jne                   main+3Dh   (004014ed)

    1.以上可以看到效率上没有区别。

    三、总结:

     1.第一种 缺点:

    在写判断语句的时候很容易漏写一个“=” ,比如把

     if (n == 1) { }

     写成

     if (n = 1) { }

    而在C中 “n = 1” 是有返回值的, 这个返回值是1, 于是原语句相当于

     if ( 1 ) { } ,即条件永远为真,{ } 内的代码始终能够得到执行,当这样的

        错误深深埋藏在代码当中,真是很让人头痛的,

     第一种 优点:

    主要目的是防止写成if(n = 1)而导致错误,但现在的编译器一般会给出警告信息所以现在不常用了.第1种更符合习惯,只要把相应的编译选项打开,一般不会出问题.

     2.第二种写法 优点:

     1) if ( 1 == n ) { } 及时少写一个"=", 编译器就会报错,省得在运行期调试

    得死去活来。

    2)会省掉很多  debug  的时间的。

    谢谢!!!

    相关文章

      网友评论

        本文标题:iOS C语言判断语句if(n==1)与if(1==n)的区别

        本文链接:https://www.haomeiwen.com/subject/uzbqzxtx.html