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除了约定之外还有其它技术原因吗?
但
\t除了惯例之外还有其他技术理由吗?
当然有技术推理.运用
cout << "Tab: [\t]";
Run Code Online (Sandbox Code Playgroud)
将独立于目标系统实际字符编码工作.
源文件可以使用与目标系统不同的编码,例如UTF8用于源,但是EBCDIC用于目标系统.
'\t'将始终转换为正确的字符代码,因此代码是可移植的.
同样在merlin2011的评论中提到,许多IDE将只替换TAB特定数量的空格.