C++ 是不是;“坏习惯”;在字符串文字中使用制表符?
作为后续(请注意,我不是上述问题的作者) 我知道这样的代码被认为是“坏习惯”。这些评论似乎在暗示同样的事情。然而,出于某种原因,标准允许这种欺骗,因此必须有人在其中没有发现任何危害,或者有它的用例C++ 是不是;“坏习惯”;在字符串文字中使用制表符?,c++,c,coding-style,string-literals,C++,C,Coding Style,String Literals,作为后续(请注意,我不是上述问题的作者) 我知道这样的代码被认为是“坏习惯”。这些评论似乎在暗示同样的事情。然而,出于某种原因,标准允许这种欺骗,因此必须有人在其中没有发现任何危害,或者有它的用例 转义制表符字符不是被广泛接受的“坏习惯”吗?我从未真正想过它,但我无法想象找到文本选项卡空间字符是个好主意,因为您无法立即将它们与标准空白区区分开来。如果您出于某种特定原因需要在字符串文本中使用tabspace,那么编写\t会更清楚、更明确,这样每个人都能准确地知道您想要做什么 顺便说一句,仅仅因为标
转义制表符字符不是被广泛接受的“坏习惯”吗?我从未真正想过它,但我无法想象找到文本选项卡空间字符是个好主意,因为您无法立即将它们与标准空白区区分开来。如果您出于某种特定原因需要在字符串文本中使用tabspace,那么编写
\t
会更清楚、更明确,这样每个人都能准确地知道您想要做什么
顺便说一句,仅仅因为标准允许就必须有一个好的用例的概念……有点被打破了。例如,该标准允许我们声明原始指针,并在Literals中使用制表符而不是转义制表符来编写
new
('\t'
,“\t”)是一种不好的做法,因为:
- 读者没有立即意识到有一个标签。结果:错误的代码假设,错误的更改(例如,当需要调整所有代码输出时)
- 根据编辑器的不同,选项卡展开可能会有所不同。后果:妨碍团队合作和维护,因为不同的人可能会看到不同的布局李>
- 最重要的是:某些编辑器在保存源文件时(使用配置的选项卡扩展设置)将选项卡转换为空格,以摆脱此类嵌入的选项卡。结果:未被注意到/不希望发生的更改(例如:当团队成员使用这样的编辑器并进行次要编辑时,即使在该字符串中也不例外)李>