使用'=''<';和'&燃气轮机';在c中

使用'=''<';和'&燃气轮机';在c中,c,trigraphs,C,Trigraphs,我在面试时问了几个问题,遇到了下面的例子。我尝试了这个简单输入/输出的例子,也尝试了一些逻辑,它工作起来没有任何问题 ??=include <stdio.h> int main(void) ??< printf("Hello"); // Other code lines here return 0; ??> ??=包括 内部主(空) ??< printf(“你好”); //这里还有其他代码行 返回0; ??> 令我惊讶的

我在面试时问了几个问题,遇到了下面的例子。我尝试了这个简单输入/输出的例子,也尝试了一些逻辑,它工作起来没有任何问题

??=include <stdio.h>

int main(void) 
??<
    printf("Hello");
    // Other code lines here
    return 0;
??>
??=包括
内部主(空)
??<
printf(“你好”);
//这里还有其他代码行
返回0;
??>
令我惊讶的是,它在没有任何编译问题的情况下工作,并且输出符合要求

“??=”、“??”在这里的意义是什么?

在这里“??=”、“??”的意义是什么?

??=
将替换为
#

??
将替换为
}
,

通过预处理器。这些被称为三角图。共有9幅三角图;其他为:

??(
将替换为
[

??)
将替换为
]

??/
将替换为
\

?”
将替换为
^

将替换为
|

??-
将替换为
~


在翻译过程的早期,即源代码标记化之前,对三角图进行处理。它们会影响注释、字符串和字符文本。

@user3121023感谢您的评论。我在搜索了三角图之后,把混乱弄清楚了。三角图是为了允许最小的字符集而提供的。旁白:早期的键盘有一个
#
键或一个
键,但不是两者都有,我猜这导致一些人将
#
哈希符号称为“磅”。很高兴它恢复为“散列标签”而不是“磅标签”。@WeatherVane是的,我刚刚读到这些是旧键盘使用的,这些键盘没有包含C/C++使用的完整键集。我不知道为什么这会出现在面试的例子中。现在很少能找到这样的键盘。我从未见过在野外使用的三角图。通常,程序员只会使用本地7位字符集映射到相应ASCII码的任何字符符号,例如在英国用
替换
,或者在日本用
替换
\
。@风向标“磅号”是因为