https://stackoverflow.com/questions/7825055/what-does-the-c-operator-do
我之前看到一段 C 代码,
!ErrorHasOccured() ??!??! HandleError();
编译完全正确,但是??!??!
是什么意思?我 Google 了一圈也没找到。
??!
是一个 三字符组,编译器会自动翻译成|
,也就是说,上面的代码等同于,
!ErrorHasOccured() || HandleError();
为什么会有这种转换呢?早在 1960 年代的时候,那时候的打字机上面还没有那么多的字符(EBCDIC),像这四个字符就没有,
{ | } ~
但是生活中又要用,所以他们就想到了这个办法。