在运营商之间增加间距的目的是什么?

时间:2012-12-12 08:37:21

标签: c++ c spacing

我基本上自学了C / C ++编程,所以我对编程习惯不太了解。总有一件事让我想知道为什么人们总是喜欢在代码中添加操作符之间的间距,如:

   if(x > 0) 

而不是

   if(x>0)

有什么特别的原因吗?我们知道编译器只是忽略了这种间距,我不认为后一种表达式的可读性较差。

8 个答案:

答案 0 :(得分:13)

有时空间必要,因为C / C ++词法分析器的最大munch原则。考虑xy都是int,expression

的指针
*x/*y

是非法的,因为词法分析者会将/*视为评论。所以在这种情况下,空间是必要的:

*x / *y

(摘自“专家C编程”一书)

答案 1 :(得分:5)

这简直是好方式。您可以根据需要编写代码,但这是一种“标准”方式。

还使代码更具可读性。

让你明白的两个例子。

1)空间少

 if(x<0.3&&y>2||!std::rand(x-y)&&!condition){
 std::cout<<++x?0:1<<std::endln;
 }

2)格式良好:

 if (x < 0.3 && y > 2 || !std::rand(x - y) && !condition) {
    std::cout << ++x ? 0 : 1 << std::endln;
}

答案 2 :(得分:4)

编译器不关心空格。这只是可读性。

有些人更喜欢运营商周围的空白,有些则不喜欢。这是个人偏好的问题。

唯一重要的是,当你在团队中工作时,你们都同意遵循统一的风格(不仅仅是关于这个,还有很多其他细节),因为两者的混合是比一个统一的方式更难阅读,即使它是你最不喜欢的那个。

答案 3 :(得分:4)

我怀疑始终正如你声称的那样发生。通常,在处理大型项目时,是否有关于是否添加空间的惯例。

我会根据具体情况申请空格:

a+b+c+d

比IM /文件更具可读性,而不是

a + b + c + d

然而

a+b*c+d

的可读性低于

a + b*c + d

我首先要遵循惯例,然后考虑可读性。一致的代码更美观。

答案 4 :(得分:2)

我认为主要原因是代码可读性(对我来说,这是一个非常重要的原因)。

对我来说,通过更多空格,代码可以打开并变得更具可读性(并且更易于理解和修改)

我的风格是这样的:

if (x > 0) 
{
  ....
}

请注意if与左括号(之间的空格。

答案 5 :(得分:1)

我同意其他人所说的代码看起来对大多数人来说更具可读性。有些人不会认为它更具可读性,但您必须假设其他人将来会查看代码,并且会从更易读的样式中受益。

答案 6 :(得分:0)

编码风格通常是希望使源代码更易于阅读。然而,就哪种风格或多或少可读而言,存在一定程度的主观性。我想大多数人会同意,在同一个文件中混合使用这两种风格将是一个糟糕的选择。

答案 7 :(得分:-1)

可读性。比较:

// C++

if (x > 0)
{
    // some
    // code
}

# Python

if x > 0:
    # some
    # code