在字符串文字中使用制表符是“不好的做法”吗?

Mas*_*ast 5 c c++ coding-style string-literals

作为对是否必须在 C 和 C++ 中转义制表符字符的后续行动(请注意,我不是上述问题的作者)。

我了解到这样的代码被认为是“不好的做法”。这些评论似乎在暗示同样的事情。然而,由于某种原因,标准允许这种诡计,所以必须有人发现它没有任何危害,或者有它的用例。

转义制表符不是被广泛接受为“不良做法”吗?

Chr*_*phe 6

在字面量中使用制表符而不是转义它们 ( '\t',"\t") 是一种不好的做法,因为:

  • 读者不会立即意识到有一个选项卡。后果:对代码的错误假设,错误的更改(例如,当需要调整代码输出的对齐方式时)
  • 选项卡扩展可能因您的编辑器而异。后果:阻碍团队合作和维护,因为不同的人可能会看到不同的布局。
  • 最重要的是:一些编辑器在保存源文件时(使用配置的选项卡扩展设置)将选项卡转换为空格,以摆脱此类嵌入的选项卡。结果:未注意到/不希望发生的更改(例如:当团队成员使用此类编辑器并进行较小编辑时,甚至不在此字符串中)。

  • @LightnessRacesinOrbit 就是这样:世界并不完美!...我不会责怪这样的人:许多专业编辑器提供的制表符扩展功能表明,大多数人都认为在代码中使用制表符进行缩进,而不是文字。没有人应该反对这种流行的想法;-) (3认同)