问题标签 [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.
c++ - C ++中Trigraph序列的目的?
根据 C++'03 标准 2.3/1:
在进行任何其他处理之前,每次出现以下三个字符序列(“三字符序列”)中的一个,都将替换为表 1 中指示的单个字符。
在现实生活中,这意味着代码printf( "What??!\n" );
将导致打印What|
,因为??!
它是一个被字符替换的三元组序列|
。
我的问题是使用三元组的目的是什么?使用三元组有什么实际优势吗?
UPD:在回答中提到一些欧洲键盘没有所有的标点符号,所以非美国程序员必须在日常生活中使用三元组?
UPD2:Visual Studio 2010 默认关闭三元组支持。
c++ - 转义序列为 ? 在 C++ 中
我正在查看 c++ 中字符串中字符的转义序列,我注意到问号有一个转义序列。有人能告诉我这是为什么吗?这似乎有点奇怪,我不知道是什么?在一个字符串中。谢谢。
c++ - C/C++ 字符串文字中的未知元字符?
我使用以下代码段创建了一个新项目:
产生以下输出:
(奇怪的]
因此翻译 '??)' -> ']'
调试它表明我的 char* 字符串文字实际上是那个值,它不是流翻译。这显然不是我见过的元字符序列。也许是某种 Unicode 或宽字符序列?但是我不这么认为......我尝试禁用所有相关的项目设置无济于事。
有人有解释吗?
- search : '问号,问号,右大括号' c c++ 字符串文字
c - 打印 ??和 !!在不同的顺序将显示不同的输出
当我以非常简单的方式编写以下行时,我发现了一个奇怪的输出:
代码:
输出:
即使代码是在 MBCS 和 UNICODE 下编译的,也会发生这种情况。
输出随“?”的顺序而变化 和 ”!”...
任何想法?
c - 关于 ansi C 的奇怪的三元组序列
在 ansi C 中使用一些字符的三元组序列成为其他字符的最初原因是什么,例如:
变成
c - ??!??! 是什么意思?运算符在 C 中做什么?
我看到一行 C 看起来像这样:
它编译正确,似乎运行正常。似乎它正在检查是否发生了错误,如果发生了,它会处理它。但我不确定它实际上在做什么或它是如何做的。看起来程序员确实在尝试表达他们对错误的感受。
我以前从未??!??!
在任何编程语言中见过它,而且我在任何地方都找不到它的文档。(谷歌对搜索字词没有帮助??!??!
)。它有什么作用以及代码示例如何工作?
c++ - 是否有使用clang禁用三元组的开关?
我有一些(遗留)代码,我是第一次用 clang 构建的。代码类似于:
Clang 给出以下警告(带有 的错误-Werror
):
显然,??>
它不打算作为三元组,所以我想完全禁用三元组(源不会故意在任何地方使用它们)。
我已经尝试过-no-trigraphs
,但这并不是一个真正的选择:
我可以关闭三字母警告,-Wno-trigraphs
但我根本不希望三字母转换真正发生。
注意:Trigraphs 作为使用-std=c89
.