问题标签 [trigraphs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
316 浏览

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

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

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

'??=', '??<' 和 '??>' 这里的意义是什么?

0 投票
2 回答
76 浏览

c - 在 C89 编译器中实现三元组

为了学习,我正在尝试基于C89 标准草案在 C89 中编写一个简单的 C89 --> x86_64 编译器。到目前为止,我正在实施翻译阶段 1。我的理解是,这包括

  1. 将代码读入字符串。
  2. 替换三字母序列。

我试图用一个程序来实现这一点(请原谅我犯的任何风格错误):

现在,直观地说,这似乎应该做应该做的事情,替换所有三元组。但是,gcc 文档说“Trigraphs 并不流行,许多编译器错误地实现了它们”。它继续声明“可移植代码不应依赖于被转换或忽略的三元组”

结果,我想知道

  • 我的实施是否足够,还是我以某种方式犯了错误?
  • 三元组是否值得一开始就实施,或者即使在最古老的遗留程序中也不使用它们?