文章作者 100test 发表时间 2010:01:01 13:03:29
来源 100Test.Com百考试题网
我们沿袭忠于标准的传统,还是首先来看一个标准中的例子
??=define arraycheck(a,b) a??(b??) ??!??! b??(a??)
这真是一段XE的代码,你看懂什么意思了么?好吧这次厚道点立刻上答案:
#define arraycheck(a,b) a[b] || b[a]
这个代码尽管是用来演示三元转义符的,但是我看到这个宏定义暗示另一个非常古怪的语法,在没有重载[]运算符的情况下,a[b]和b[a]总是完全等价的。所以在任何你使用了a[1]的时候,你都可以替换成1[a],尽管这看起来非常诡异。似乎这一点颇得标准编写者的喜爱,居然在一个完全无关的场合明里暗里地提了一下这个事情。
好吧我们言归正传,这些诡异的用法是C 的三元转义符,所幸它们数量不多,请看下表:
三元符 | 用以替代 | 三元符 | 用以替代 | 三元符 | 用以替代 |
??= | # | ??( | [ | ??
新版网站调整中,如需联系我们,请Email: evisa2011#gmail.com (#换@) ---- Copyright © 2000-2020.百考试题网 100Test.Com
|