在C中使用'\n'和'\ 12'有什么区别

Ras*_*ril 3 c ascii

换行符(LF)的ASCII码为10. '\n'实现为多于简单的非可打印ASCII字符?

是否有任何C语言的具体细节?

Kei*_*son 11

字符常量'\n'表示C标准称为"换行符"的字符.

该标准没有说明该角色的价值.它恰好是LF使用基于ASCII的字符集(包括Unicode)的系统上的10() - 但C标准不需要ASCII.(从1999标准开始,实现可能表明它们通过预定义支持Unicode __STDC_ISO_10646__,但这是可选的.)

例如,IBM大型机系统使用称为EBCDIC的不同且不兼容的字符集.在这样的系统上,'\n'将具有10以外的值.

顺便提一下,'\10'值为8,而不是10.该语法使用八进制(基数8),而不是十进制.字符10表示为'\12'(或'\xa'以十六进制表示).(问题已更新以纠正此问题.)

  • FWIW,在定义了`__STDC_ISO_10646__`且未定义`__STDC_MB_MIGHT_NEQ_WC__`的现代系统上,`'\ 12'`和`'\n'`需要具有相同的值,即UCS/Unicode字符的值U + 000A `. (3认同)