所以我遇到了这段代码:
%:include <stdio.h>
int main(int argc, char *argv<::>) <%
printf("C program succesfully running...");
getchar();
return 0;
%>
这是一些编译器错误还是这个我尚未发现的新东西,因为它运行没有任何问题。
答案 0 :(得分:14)
此代码使用C有向图,如下所述:http://en.wikipedia.org/wiki/Digraphs_and_trigraphs#C
C标准(ISO / IEC 9899:201x,Punctuators§6.4.6:3)对此事有这样的说法:
在语言的所有方面,六个令牌
<: :> <% %> %: %:%:
分别表现为与六个令牌相同
[ ] { } # ##
除了他们的拼写。
答案 1 :(得分:2)
这些是标点符号,%:
与#
相同,%>
与}
等相同... C99 draft standard部分{{1 } 标点符号说:
在语言的各个方面,六个令牌67)
6.4.6
分别表现为与六个令牌相同
<: :> <% %> %: %:%:
它们有时也被称为 digraphs ,正如我们在注释 [ ] { } # ##
中看到的那样:
这些代币有时被称为“有向图”。
答案 2 :(得分:2)
答案 3 :(得分:2)
Digraph,在C99中介绍。
C99 6.4.6标点符号
在语言的所有方面,六个令牌
<: :> <% %> %: %:%:
分别表现为与六个令牌相同
[ ] {} # ##
除了他们的拼写。