三字母( trigraphs)使用三个特殊的符号解析为对应符号的例如 ??...(映射为 ] 编译通过的示例 编译加入三字符选项 trigraphs参数; 如: gcc-trigraphs trigr.c #include int main(int argc,
else { printf("sqrt(30) +1 <= 5 \n"); } return 0; } 编译运行: $ gcc -o main main.c -trigraphs...实际上,细心的读者可能观察到了,我在前面例子代码中加了编译选项-trigraphs,否则的话,编译是有警告的: $ gcc -o main main.c main.c: In function ‘main.../ ignored, use -trigraphs to enable [-Wtrigraphs] //is sqrt(30) + 1 > 5 ??
如果你不再需要某个特性,甚至于某个特性可能会造成"危险",那么你就应该移除他.C++17中就移除了auto_ptr 和 trigraphs 这两个语言特性....移除 auto_ptr 和 trigraphs auto_ptr std::auto_ptr 是C++标准中第一个智能指针,他的设计目的是为了正确的管理资源.但是他存在一个很大的缺陷: std::auto_ptr...(三字符组) 所谓三字符组(trigraphs),是指源代码中由特定的3个字符组成的转义字符序列(该转义序列用以表达某个单字符),目的是解决一些键盘不能输入某些特殊字符的问题....C++ 中移除了三字符组(trigraphs),这意味着你不能使用C++17写出下面这种"混乱"的代码了: int main() ??< ??(??)??(); ??...> 我猜你也许能看懂上面的代码,如果不能的话,你就必须把其中的三字符组(trigraphs)转成对应的单字符了.
少为人知的符号表2 三个字符等同单个字符,GNU g++编译时需要指定编译参数“-trigraphs”。 3.1. 符号表 可选的符号 可替代的常见符号 ??= # ??/ \ ??’
因为指定了“-mthumb-interwork”产生的代码稍微大一些; -Wno-write-strings: 会忽略掉C++ char * 转const char *的警告,这样并不会很安全; -Wno-trigraphs
Other static_assert with no message u8 character literals Removing trigraphs Remove Deprecated Use of
如果需要使用三字符组替换(如为了兼容古老的软件代码),需要设置编译器命令行选项/Zc:trigraphs g++仍默认支持三字符组,但会给出编译警告。
ansi:ANSI标准 -std=c99:C99标准 -std=gnu89:ISO/IEC 9899:1990以及GNU扩充 -std=gnu99:ISO/IEC 9899:1999以及GNU扩充 -trigraphs
Wno-long-long -Wno-shift-negative-value -Werror=implicit -Werror=missing-braces -Werror=return-type -Werror=trigraphs
C90 introduced trigraphs, which changed the behavior of some string constants....Compilers adapted with options like -no-trigraphs and -Wtrigraphs.
SD-6 Feature Test Removing trigraphs N4086 5 u8 character literals N4267 6 __cpp_unicode_characters
This setting also enables trigraphs. C89: Accept ISO C90 (1990), but not GNU extensions....Enable Trigraphs (GCC_ENABLE_TRIGRAPHS) Controls whether or not trigraphs are permitted in the source
:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT} *cpp_options: %(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs...S:-auxbase %b}} %{g*} %{O*} %{W*&pedantic*} %{w} %{std*&ansi&trigraphs} %{v:-version} %{pg:-p} %{p}...nostartfiles:%E}} %{T*} }}}}}} 信息比较多,定位到关键字 *cc1_options:, 在 %{w} 和 %{std*&ansi&trigraphs} 之间添加 -std=...S:-auxbase %b}} %{g*} %{O*} %{W*&pedantic*} %{w} -std=c99 %{std*&ansi&trigraphs} %{v:-version} %{pg:
领取专属 10元无门槛券
手把手带您无忧上云