为什么 C 程序员会对 ASCII 值而不是十进制使用转义序列(八进制/十六进制)?
跟进:这与性能或便携性有关吗?
示例:
char c = '\075';
最佳答案
您使用八进制或十六进制是因为无法在字 rune 字或字符串文字中指定十进制代码。八进制在 PDP-11 代码中很普遍。现在,使用十六进制可能更有意义,尽管 '\0'
比 '\x0'
更紧凑(所以使用 '\0'
当你用 null 终止一个字符串等时)。
此外,请注意 "\x0ABad choice"
没有您可能期望的含义,而 "\012007 wins"
可能有。 (不同之处在于,十六进制转义会一直运行,直到遇到非十六进制数字,而八进制转义最多会在 3 位数字后停止。要获得预期结果,您需要 "\x0A""Bad choice "
使用‘相邻字符串文字连接’。)
这与性能无关,也与便携性无关。编写 '\x41'
或 '\101'
而不是 'A'
是降低代码的可移植性和可读性的一种方式。只有在没有更好的方式来表示字符时,您才应该考虑使用转义序列。
关于c - 使用八进制表示 ASCII 的目的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27834410/