Chinaunix首页 | 论坛 | 博客
  • 博客访问: 21761
  • 博文数量: 2
  • 博客积分: 80
  • 博客等级: 民兵
  • 技术积分: 30
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-20 12:41
文章分类

全部博文(2)

文章存档

2011年(2)

最近访客

分类: C/C++

2011-05-01 16:09:52

最近正在重新温习下C语言的基础知识,正巧在《C和指针》这本书中看到三字母词的描述。
以前从没有接触过介个东东, 正好拿来学习下。

三字母词 -- trigraph sequences

从上大学到现在看过的很多关于C语言的书中都没有提到三字母词这个东东,
可能是因为现在没有人会来用它,所以很少在书中有提及。
在ANSI C99标准中有它的详细说明,不过也就那么几行。
目前为止的三字母词只有9种,估计以后也不会再扩充了。

??= equals #      ??) equals ]
 
??! equals |      ??( equals [

??' equals ^      ??> equals }

??/ equals \          ??< equals {

??- equals ~

下面是C99上面的例子 供参考
  1. printf("Eh???/n");
等价于
  1. printf("Eh?\n");
记得以前高中老师说过 凡存在必合理
三字母词的存在是考虑到有些老式键盘上没有上面那9中字符
所以用另一种方式来表示这些字符的 现在已经完全没有必要这么麻烦了

在编译时如果不加-trigraphs会出现如下警告
warning: trigraph ??/ ignored, use -trigraphs to enable
我们需要在编译时加上-trigraphs选项,而且需要加在最前面。
cc -trigraphs -o test test.c

最后附上C99参考文献
 C99.zip  



阅读(2243) | 评论(0) | 转发(0) |
0

上一篇:Red Hat Enterprise Linux 5 Install

下一篇:没有了

给主人留下些什么吧!~~