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

[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++编程指南

    《林锐-高质量C/C++编程指南》不仅为C/C++开发者提供了一套全面而细致的编程规范,还深入讲解了许多核心概念和技术细节,对于提升编程水平和编写高质量的C/C++程序具有重要的指导意义。无论是初学者还是有一定经验的...

    中兴通讯C/C++笔试题及答案

    4. 在C++程序中调用被C编译器编译后的函数,为什么要加extern "C"声明? extern "C"声明用于告诉C++编译器该函数是用C语言编译的,而不是C++语言编译的。这是因为C++编译器可能会将函数名进行名称 mangling,而...

    高质量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++ Reference

    《C/C++ Reference》是一个非常重要的资源,对于学习和深入理解C和C++这两种编程语言至关重要。这份参考手册详尽地涵盖了C++的所有基础知识以及高级特性,为开发者提供了全面的指导。 C++是一种静态类型的、编译式...

    C/C++语言写的词法分析器

    例如,在C/C++语言中,`if`是关键词,`main`是函数名(标识符),`123`是整型常量,`+`是二元运算符,`;`是语句结束符。 词法分析器的工作流程大致如下: 1. **读取源代码**:程序从源文件中逐字符读取内容。 2. **...

    潭浩强c语言 c/c++

    ### 潭浩强C语言:C/C++编程精髓概览 #### 1. C语言概述与发展历程 C语言由Dennis Ritchie于1972年在贝尔实验室开发,初衷是为了重写UNIX操作系统。其设计简洁高效,是现代编程语言的基石之一,对后续的C++、Java...

    C/C++指令字典

    《C/C++指令字典》是一本非常实用的资源,主要涵盖了C和C++编程语言中的常见函数用法和功能。对于程序员来说,理解和掌握这些指令是提高编程效率和解决问题的关键。下面,我们将深入探讨其中的一些重要知识点。 一...

    软件工程师C/C++笔试题

    在软件工程师的C/C++笔试中,面试官可能会考察应聘者的C/C++基础知识,特别是预处理器的使用。预处理器在编程中起到一个重要的作用,它在编译阶段处理源代码,执行宏替换、条件编译等任务。以下是对标题和描述中提到...

    C/C++程序员实用大全的配套代码

    在配套代码中,你会找到关于C语言的基本结构的实例,如变量声明、常量、运算符、流程控制语句(如if-else,switch-case,for,while等)。此外,指针是C语言的核心,代码可能包含有关指针的练习,包括指针的声明、...

    c/c++面试笔试题目深度解析

    在C/C++面试和笔试中,常常会遇到各种各样的问题,这有助于考察应聘者对这两种编程语言的理解和掌握程度。下面将针对题目中的几个关键知识点进行深入解析: 1. **字符串比较**: - `str1` 和 `str2` 是字符数组,...

    语言C/C++概述

    虽然C和C++在很多方面相似,但它们各自拥有独特的特性和应用领域。本文将重点讨论这些语言的基础语法和关键特性。 ##### 1.1 变量与常量 - **变量**:变量是指在程序执行过程中可以改变其值的数据存储位置。在C/...

    pl0语法分析器

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

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

    ### 高质量C/C++编程指南 #### 一、引言 《高质量C/C++编程指南》由林锐博士编写,旨在帮助程序员提高C/C++代码的质量,而不仅仅是实现其基本功能。该指南强调了软件质量的重要性,并指出,即便是经验丰富的程序员...

    C/C++语言面试题大全.zip

    在IT行业中,C和C++语言是基础且至关重要的编程语言,它们被广泛应用于系统级编程、游戏开发、嵌入式系统以及高性能计算等领域。针对C/C++的面试题可以帮助求职者评估其对语言核心概念的理解,算法能力,以及实际...

    c/c++ language reference

    IBM 的 C/C++ 语言参考是一份详尽的文档,旨在为开发者提供全面深入的 C 和 C++ 编程语言指南。这份文档适用于 IBM XLC/C++ for AIX V11.1 版本及其后续版本,直至新的版本发布。 #### 二、范围与链接性 (Scope and...

    C/C++ 字符表

    在C/C++编程语言中,字符表是一种用于存储和处理字符数据的数据结构。它涉及到字符编码、字符类型、字符操作以及字符串处理等多个方面。字符在计算机科学中扮演着至关重要的角色,因为它们是编程语言中表示文本的...

    c++运算符优先级,word版本表格

    在 C++ 中,运算符的结合律是指当多个运算符出现在同一表达式中时,哪个运算符先执行的顺序。C++ 的运算符结合律规则是从右往左的,也就是说,运算符出现在右边的将先执行。 运算符优先级 以下是 C++ 运算符的...

Global site tag (gtag.js) - Google Analytics