页面加载中,请稍候
来源:Amadeus发布时间:2021-08-15275浏览
询问 AI某软件工程师接盘了前同事的项目,进度一拖再拖,最后发现问题出现在如下代码:
注释语句 ??/2a = b+c;
请注意代码中的“??/”,就是这注释隐藏的很深,让项目一拖再拖。
??/"会被编译器当作 \,变成C语言的换行符。于是这段代码等同于// 注释语句 a = b+c ;就会被注释掉。
下面我们就是说说“??/”这种“三字母词”的内容。
什么是“三字母词”
在ANSI标准中,定义了“三字母词”,或者成为“三联符序列”,英文为"trigraph sequences"。目的主要是为了在一些特定的字符集中,比如一些七位代码集中,解决一些特定字符的输入问题。
“三字母词”例子
例子1:C99标准中给出的例子printf(Eh???/n");相当于:printf(Eh/n");printf("Deletefile(areyou really sure??):);运行结果为(三字母词“??)”编译时替换为“]”):Deletefile(areyou really sure]:Deletefile(areyou really sure??):最后
由于编译器的种类各样,对ANSI C的支持也不一样,所以可能会有些C编译器不处理“三字母词”,会将它们当做普通的字符串来处理。新闻来源:strongerHuang,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。
暂无评论哦,快来评论一下吧!
2026-06-04

2026-06-05
2026-07-01