百科问答小站 logo
百科问答小站 font logo



代码之间为什么要加空格? 第1页

  

user avatar   pansz 网友的相关建议: 
      

加空格并不是为了美观。只是为了标识族群的位置。

在题主举例的场景,确实并不需要加空格。

我来给题主举个需要加空格的例子:

       Thisisavarofthings=yourfuckingtype+otherdamnedresult*me; oh=mygodblessedsweetheart-thesaintangel/cursedcorpsehere;     

看看上面的组合,你能一眼看出来每个符号在哪吗?

比较一下这个:

       Thisisavarofthings = yourfuckingtype + otherdamnedresult * me; oh = mygodblessedsweetheart - thesaintangel / cursedcorpsehere;     

你还觉得两者仅仅只是美观问题?

对于这个问题,我总结一下:如果代码风格规定了更完整,更具有解释意义的变量名称,那么变量名称就会很长,而空格的价值在于将变量名称有效的分离成组团,提升辨识度。

如果你只使用单字母作为变量名,那么空格确实是没有必要的。

简要的说,加空格是为了辅助分组,而不是一味的加。

--

有一种情况是无条件加空格:关键字之后加空格,原因在于避免它看起来像一个函数调用。

例如 if return while sizeof 之类的关键字,后面无条件加空格,毕竟一个关键字直接加一个括号看起来有点像函数调用。——同样的道理,函数名称与相邻的括号之间,就禁止加空格了。

--

至于那个 if 的判断问题。其实你看过 C++ 作者的书就懂了。

C++作者对这个问题的意见是,他设计C++的时候,希望 0 值是一个无类型值,可以针对所有类型的变量使用,这样对模板编程更加方便。因为无论模板 T 是什么类型都可以与 0 值进行操作。

而 if 语句的目的,就是用来判断 0 与 非零 两种状态。

所以,C++作者规定了 if (xxx==true) 是错误写法,因为不可以将值与布尔量进行比较,布尔量只能当作逻辑量进行运算。

至于你认为 if (!xxx) 不够清晰,有个方法可以替换:

       if (xxx) { } else {    // 请开始你的表演 }     

这个意思是:你可以用 if/else 结构写一个空的真分支,而在假分支写上需要的代码,这种情况下可以清晰的看出这段代码在条件为假时运行。

无论如何,将布尔量与布尔常量true/false进行比较的做法确实是违背C++设计思想的,在C++中,true/false常量只能用于赋值,不能用于比较,在其他语言中才可以

       if (xxx==true) // 错误,布尔量不可直接比较 if (xxx) // 正确  if (yyy==false) // 错误,布尔量不可直接比较 if (!yyy) // 正确  if (xxx==true && yyy==false) //  错误,布尔量不可直接比较 if (xxx && !yyy) // 正确  if (xxx == yyy) // 错误,布尔量不可直接比较 if ( (xxx&&yyy) || (!xxx&&!yyy) ) // 正确  if (xxx != yyy) // 错误,布尔量不可直接比较 if ( (xxx&&!yyy) || (!xxx&&yyy) ) // 正确     



  

相关话题

  Visual Studio 是不是坑了一代人?为什么? 
  C 语言float和double哪个算得快? 
  未接触过编程的妹子希望通过做小项目来学习编程,有哪些类型的项目比较适合? 
  为什么迷宫从终点向起点走更容易? 
  一年级小朋友想学习编程,推荐哪个品牌? 
  C/C++ 小括号中为何不能声明变量的同时对其赋值? 
  自己开发的Windows7 64位驱动程序需要签名,怎么解决? 
  有哪些程序员特有的习惯? 
  为什么使用virtual关键字在C++与C#会出现不同的效果?求解答。 
  如何评价《太吾绘卷》的程序代码? 

前一个讨论
你所学的研究生专业叫什么名字?
下一个讨论
同样有很多骗子,为什么书法没有像中医,传统武术那样被人黑呢?





© 2025-01-03 - tinynew.org. All Rights Reserved.
© 2025-01-03 - tinynew.org. 保留所有权利