`
jishublog
  • 浏览: 870664 次
文章分类
社区版块
存档分类
最新评论

C语言中的三字母词(trigraph)

 
阅读更多
C语言中的三字母词(trigraph)
ANSI C标准中,定义了9三字母词(trigraph),三字母词就是几个字符的序列,合起来表示另一个字符。三字母词使C语言环境可以在缺少一些必需字符的字符集(比如,一些非常老式的键盘上没有[]{}#\^~|)上实现。也许是由于这些字符集我们基本上用不到,所以在大多数C语言的书籍中,我们都看不到对三字母词的讲解。下图列出了9个三字母词以及它们所代表的的字符。

源代码中的“三字母词”,在编译阶段会被替换为“对应的字符”。对于以“?”开头的字符序列,如果不能与上面9个匹配,编译器将保持原状;一旦匹配,编译器就会做替换。 下面是我们很容易犯的一个错误(摘自《C和指针》):
printf("Delete file (are you really sure??):");
注意:由于编译器的种类各样,对ANSI C的支持也不一样,所以可能会有些C编译器不处理“三字母词”,会将它们当做普通的字符串来处理。 以上测试是在VC++ 6.0下进行的,对于GCC编译器,需要在编译的时候添加选择"-ansi"或者"-trigraphs"。
最后,留意一个小小的问题,看大家是否对C语言中的三字母词和转义字符(不熟悉的同学可以看看这篇博客http://blog.csdn.net/ce123/article/details/9074121)理解了,大笑
用printf函数打印出下面这段文本(包括两边的双引号),应该使用怎样的字符串常量参数?

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics