为什么使用"\ t"而不是"<press TAB>"作为字符串?

The*_*hwa 4 c++ tabs conventions

我只是尝试编译一些C++代码,这些代码TAB在字符串中使用了文字Tab字符(如我在键盘上按下键).令我惊讶的是,它汇编得很好.回想起来,我认为这是有道理的,因为它是一个像其他任何人一样的角色.

cout << "Tab: [TAB]";
Run Code Online (Sandbox Code Playgroud)

在此之前,我总是习惯\t在字符串中定义标签.

cout << "Tab: [\t]";
Run Code Online (Sandbox Code Playgroud)

显然,TAB在字符串中使用字面值的代码在可读性方面会受到很大的影响,但是\t除了约定之外还有其它技术原因吗?

πάν*_*ῥεῖ 6

但\t除了惯例之外还有其他技术理由吗?

当然有技术推理.运用

cout << "Tab: [\t]";
Run Code Online (Sandbox Code Playgroud)

将独立于目标系统实际字符编码工作.

源文件可以使用与目标系统不同的编码,例如UTF8用于源,但是EBCDIC用于目标系统.
'\t'将始终转换为正确的字符代码,因此代码是可移植的.


同样在merlin2011的评论中提到,许多IDE将只替换TAB特定数量的空格.