最近正在重新温习下C语言的基础知识,正巧在《C和指针》这本书中看到三字母词的描述。
以前从没有接触过介个东东, 正好拿来学习下。
三字母词 -- trigraph sequences 从上大学到现在看过的很多关于C语言的书中都没有提到三字母词这个东东,
可能是因为现在没有人会来用它,所以很少在书中有提及。
在ANSI C99标准中有它的详细说明,不过也就那么几行。
目前为止的三字母词只有9种,估计以后也不会再扩充了。
??= equals # ??) equals ]
??! equals | ??( equals [
??' equals ^ ??> equals }
??/ equals \ ??< equals {
??- equals ~
下面是C99上面的例子 供参考
等价于
记得以前高中老师说过 凡存在必合理
三字母词的存在是考虑到有些老式键盘上没有上面那9中字符
所以用另一种方式来表示这些字符的 现在已经完全没有必要这么麻烦了
在编译时如果不加-trigraphs会出现如下警告
warning: trigraph ??/ ignored, use -trigraphs to enable我们需要在编译时加上-trigraphs选项,而且需要加在最前面。
cc -trigraphs -o test test.c
最后附上C99参考文献
C99.zip
阅读(2256) | 评论(0) | 转发(0) |