这种无支架/无支架代码有效吗?
所以我遇到了这段代码:
%:include int main(int argc, char *argv)
这是一些编译器错误还是这个我尚未发现的新东西,因为它运行没有任何问题。
此代码使用C有向图,如下所述: http : //en.wikipedia.org/wiki/Digraphs_and_trigraphs#C
C标准(ISO / IEC 9899:201x,Punctuators§6.4.6:3)对此事有这样的说法:
在语言的各个方面,六个令牌
<: :> <% %> %: %:%:
表现分别与六个令牌相同
[ ] { } # ##
除了他们的拼写。
这是C语言的一个非常禅的小角落。
在过去,终端和键盘通常不支持编程所需的所有字符; 所以引入了有向图和三字母。
我很惊讶任何现代编译器仍然支持它们,但它确实存在。
Digraph ,在C99中推出。
C99 6.4.6标点符号
在语言的各个方面,六个令牌
<: :> <% %> %: %:%:
表现分别与六个令牌相同
[ ] {} # ##
除了他们的拼写。
这些是标点符号, %:
与#
相同, %>
与}
等相同… C99标准草案第6.4.6
节标点符号说:
在语言的各个方面,六个令牌67)
<: :> <% %> %: %:%:
表现分别与六个令牌相同
[ ] { } # ##
它们有时也被称为有向图,如我们在注释67
所见:
这些令牌有时被称为“有向图”。