【发布时间】:2015-10-26 15:35:06
【问题描述】:
假设您正在使用 ISO 646 的不变集编写(可移植的)C99 代码。这意味着不能直接编写 \(反斜杠,反斜线,无论您如何命名)。例如,可以选择这样编写一个 Hello World 程序:
%:include <stdio.h>
%:include <stdlib.h>
int main()
<%
fputs("Hello World!??/n", stdout);
return EXIT_SUCCESS;
%>
但是,除了二合字母之外,我还使用了??/ 三合字母来写\ 字符。
根据我上面的假设,是否有可能
- 在字符串中包含
'\n'字符(在<stdio.h>函数中转换为换行符)不使用三元组,或者 - 在不使用
'\n'字符的情况下将换行符写入FILE *?
【问题讨论】:
-
我不确定我是否理解。您的字符集没有反斜杠,但您不想使用它的三元组编写反斜杠?
-
@zneak:这是不可能的,因为标准要求这些字符存在。 (至少从大约 20 年以来,三合符是最多余的特征)。
-
@zneak 我必须使用三合字母的唯一地方(这与二合字母非常不同,因为它们是在不同的阶段翻译的)是写我唯一需要的反斜杠,即换行符。感觉有点不对劲。
-
转义序列不是由库“翻译”,而是由编译器“翻译”。阅读port70.net/~nsz/c/c11/n1570.html#5.2.1
-
@Olaf,我不确定他是否提到过图书馆。