在字符串文本中使用制表符是否"bad practice"?



作为C和C++中转义制表符是强制性的吗?(请注意,我不是上述问题的作者)。

我了解到这样的代码被认为是"坏习惯"。这些评论似乎暗示了同样的事情。然而,由于某种原因,标准允许这种欺骗,所以必须有人在其中没有发现任何危害,或者有它的用例

逃避制表符字符是否被广泛接受为"不良做法"?

在垃圾中使用制表符而不是转义它们('t',"\t")是一种糟糕的做法,因为:

  • 读者没有立即意识到有标签。结果:对代码的错误假设,错误的更改(例如,当代码输出的allignemnt需要调整时)
  • 选项卡展开可能会有所不同,具体取决于您的编辑器。结果:阻碍团队合作和维护,因为不同的人可能会看到不同的布局
  • 最重要的是:一些编辑器在保存源文件时(使用配置的选项卡扩展设置)将选项卡转换为空格,从而消除此类嵌入的选项卡。结果:未被注意到/不希望的更改(例如:当团队成员使用这样的编辑器并进行小的编辑时,甚至不在此字符串中)

我从来没有真正想过,但我无法想象找到文本制表符是个好主意,因为你无法立即将它们与标准空白区区分开来。如果由于某些特定原因,您需要在字符串文字中使用制表符空间,那么编写t会更清楚、更明确,这样每个人都能准确地知道您想要做什么。

顺便说一句,仅仅因为标准允许就必须有一个好的用例的概念…有点坏了。例如,该标准允许我们声明原始指针,并编写new

最新更新