在 c 中使用 '??='、'??<' 和 '??>'

Naa*_*Hai 5 c trigraphs

我正在经历一些面试问题,我遇到了如下示例。我尝试了简单输入/输出以及一些逻辑的示例,它工作没有任何问题。

??=include <stdio.h>

int main(void) 
??<
    printf("Hello");
    // Other code lines here
    return 0;
??>
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,这没有任何编译问题,并且输出符合要求。

这里的“??=”、“??<”和“??>”有何意义?

小智 4

这里的“??=”、“??<”和“??>”有何意义?

??=将被替换为#,

??<将被替换为{,

??>将被替换为},

由预处理器。这些称为三字母组。三字母共有9个;其他的是:

??(将被替换为[,

??)将被替换为],

??/将被替换为\,

??'将被替换为^,

??!将被替换为|,

??-将被替换为~.

在源代码被标记化之前,三字母组在翻译过程的早期就被处理。它们可以影响注释、字符串和字符文字。