使用'=''<';和'&燃气轮机';在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码的任何字符符号,例如在英国用
替换
,或者在日本用
替换\
。@风向标“磅号”是因为