`
snake_hand
  • 浏览: 568485 次
社区版块
存档分类
最新评论

[C/C++] 为什么把常量写在 == 运算符的左边

 
阅读更多

[C/C++] 为什么把常量写在 == 运算符的左边

当然,把常量写在 == 运算符的左或右对运算本身没有任何影响,它们仅仅是两种不同的书写风格。所以我敢保证很多人并不会因为看到某些帖子宣称“应该将常量放在左边”就真的改变自己固有的风格,说到底,习惯而已。

不过,将常量写在运算符左边在某种情况下可能会更容易查错。看下面的例子:

片段一,当且仅当 flag == 5 时执行循环体中的内容:

int flag;
...
while (flag == 5)
{
/* do something */
}

片段二,手快敲掉了一个 =,将会导致死循环,因为 flag = 5 总为真,当代码量很大的时候,要 debug 出这样的错误恐怕不太容易:

int flag;
...
while (flag = 5)
{
/* do something */
}

片段三,常量放在左边,即使侧漏了一个 = 号也很安全,编译器会告诉你这里 Error 了:

int flag;
...
while (5 = flag)
{
/* do something */
}

用一句话总结:良好的书写风格可以让臭虫在编译时而不是运行时现身

=========================================================================

转载声明:本文转自http://hellobmw.com/archives/why-put-constant-at-the-left-side-of-equal-to-operator.html

分享到:
评论

相关推荐

    编译原理课程设计 词法分析 C语言/c++版

    编译原理课程设计之一用编程语言实现词法分析,用C++实现 注释清楚详细,程序风格良好 /*目前实现的功能有: */ /* 0.课程要求的词法分析基本功能 */ /* 1.识别用户定义的初次定义的变量还是已经定义的变量还是错误...

    C/C++程序员面试指南.杨国祥(带详细书签).pdf

    C、C++语言是IT行业的主流编程语言,也是很多程序员必备的软件基本功,是软件开发行业招聘考查的重点。本书以流行的面试题讲解为主要内容,介绍了C、C++语言基本概念,包括保留字、字符串、指针和引用、结构体、...

    高质量C/C++编程指南(PDF)

    5.1 为什么需要常量. 5.2 CONST 与 #DEFINE 的比较. 5.3 常量定义规则. 5.4 类中的常量. 第6 章 函数设计 高质量C++/C 编程指南,v 1.0 2001 Page 4 of 101 6.1 参数的规则. 6.2 返回值的规则. 6.3 函数内部实现...

    C++课件第一章

    C++课的第一章的PPT资源,里面有很多的该注意的细节,考试会考到

    pl0语法分析器

    用C写的。 /语法分析过程中 /利用词法分析的结果进行分析 /严格按照PL0程序定义来编写 / /<程序> ::= <程序首部> <分程序>. /<程序首部> ::= PROGRAM <标识符>; /<分程序> ::= [<常量说明部分>][<变量说明部分>][...

    编译原理课程设计-用高级语言实现词法分析器(c/c++版)

    浮点数和常量可以识别读取并输出。 */ /* 3.识别双目运算符和用户连续输入的分界符 */ /* 4.程序存在问题:不能正确区分负号和减号,统一输出为减号 */ /* 5.识别注释 */ /* 6.目前仅支持简单C语言程序,可自行...

    高质量C++编程指南.PDF

    5.1 为什么需要常量 5.2 const 与 #define的比较 5.3 常量定义规则 5.4 类中的常量 第6章 函数设计 6.1 参数的规则 6.2 返回值的规则 6.3 函数内部实现的规则 6.4 其它建议 6.5 使用断言 6.6 引用与指针的比较 第7章...

    c/c++ 学习总结 初学者必备

     注意:在Turbo C 2.0中,字符型常量表示数的范围是-128到127,除非你把它声明为unsigned,这样就是0到255。  上面我们见到的\x,\n,\a等等都是叫转义字符,它告诉编译器需要用特殊的方式进行处理。下面给出所有的...

    C和C++头文件对比一览

    把C++头文件的.h去掉,于是就有前面出现的iostream,同样C的头文件也做了相同的处理,同时在前面加上了一个字母c,以表示是C的头文件(感觉上有中种族歧视的感觉)。同时标准化委员会声明就有的C++头文件将不再列于...

    本人精心收集,c++头文件一览

    C/C++头文件一览 C、传统 C++ #include <assert.h> //设定插入点 #include <ctype.h> //字符处理 #include <errno.h> //定义错误码 #include <float.h> //浮点数处理 #include <...

    c++ 数据类型、运算符与表达式

    c++ 数据类型、运算符与表达式 C++语言的基本元素、字符集和关键字 基本的数据类型的表示方法 常量和变量 类型转换 各种运算符与表达式

    高质量C/C++编程指南.pdf

    5.1 为什么需要常量...........................................................................................................8 5.2 CONST 与#DEFINE 的比较..................................................

    编译原理 - 词法分析:C/C++实现

    通过对C语言的词法分析实验,我学会了如何识别关键字、标识符、常数、运算符和界限符等不同类型的单词,并将其分类和输出相应的词法单元。其次,我在实验中学到了如何设计和实现词法分析器的基本框架和算法,并且...

    77G 22套C语言 C++ 数据结构 程序设计视频课程合集 C丨C++相关学习视频全套视频教程

    dk2j_c_自加自减逗号运算符.mp4 dk2j_c_赋值表达式.mp4 dk2j_c_赋值语句_复合语句_空语句.mp4 KRC0507_多维数组.mp4 lc_流定位.mp4 MCU51_位操作运算符.mp4 MCU51_分支控制.mp4 MCU51_循环控制.mp4 MCU51_...

    C++ 面向对象示例

    【C++ 语言】面向对象 ( 函数重载 | 运算符重载 | 运算符重载两种定义方式 | 拷贝构造方法 | RVO 优化 | NRVO 优化 ) : https://hanshuliang.blog.csdn.net/article/details/99632111 【C++ 语言】面向对象 ( 继承 ...

    邓炜php基本语法(一)变量常量数据类型

    大纲 ...二、掌握PHP变量、常量、数据类型 ...PHP语法主要借鉴于C/C++,也部分参考了Java和Perl。...既然是一门编程语言,肯定会由多种编程元素组成,如变量、常量、运算符、控制语句、数组、字符串、函数和对象等。

    C++ 运算符

    C++运算符 赋值语句的作用是把某个常量或变量或表达式的值赋值给另一个变量。符号为‘=’。这里并不是等于的意思,只是赋值,等于用‘==’表示。

    C++程序设计-谭浩强-清晰版完整书签

    1.1 从C到C++ 3 1.2 最简单的C++程序 5 1.3 C++程序的构成和书写形式 12 1.4 C++程序的编写和实现 13 1.5 关于C++上机实践 15 习题 16 第2章 数据类型与表达式 19 2.1 C++的数据类型 19 2.2 常量 21 2.2.1...

    c++精粹c++精粹c++精粹c++精粹

    Ira Pohl是美国加州大学圣克鲁兹分校计算机科学技术系教授,具有20多年软件教学经验,是C和C++语言程序设计的国际权威,著有多部与C语言和C++语言相关的经典著作。他曾为多家机构提供技术咨询服务,包括DEC公司、...

    高质量C++/C编程指南

    5.1 为什么需要常量 33 5.2 CONST 与 #DEFINE的比较 33 5.3 常量定义规则 33 5.4 类中的常量 34 第6章 函数设计 36 6.1 参数的规则 36 6.2 返回值的规则 37 6.3 函数内部实现的规则 39 6.4 其它建议 40 6.5 使用断言...

Global site tag (gtag.js) - Google Analytics