所以我碰到這段代碼:這種無支架/無支架的代碼是如何有效的?
%:include <stdio.h>
int main(int argc, char *argv<::>) <%
printf("C program succesfully running...");
getchar();
return 0;
%>
這是一些編譯器錯誤,或者這是新的東西,因爲它沒有任何問題我運行尚未發現。
所以我碰到這段代碼:這種無支架/無支架的代碼是如何有效的?
%:include <stdio.h>
int main(int argc, char *argv<::>) <%
printf("C program succesfully running...");
getchar();
return 0;
%>
這是一些編譯器錯誤,或者這是新的東西,因爲它沒有任何問題我運行尚未發現。
該代碼使用了C有向圖,爲解釋在這裏:http://en.wikipedia.org/wiki/Digraphs_and_trigraphs#C
C標準(ISO/IEC 9899:201X,標點符號§6.4.6:3)具有本就此事說:
在語言的各個方面,六代幣
<: :> <% %> %: %:%:
的行爲,分別,同爲六代幣
[ ] { } # ##
除了拼寫。
這些標點符號和%:
相同#
和%>
相同}
等... C99 draft standard部分6.4.6
標點符號說:
在語言的各個方面, 6 tokens67)
<: :> <% %> %: %:%:
的行爲,分別,同爲六代幣
[ ] { } # ##
他們有時也被吹罰爲有向圖正如我們在附註67
看到:
這些令牌有時被稱爲''有向圖''。
Digraph,在C99中引入。
C99 6.4。6個標點符號
在語言的所有方面中,六個令牌
<: :> <% %> %: %:%:
的行爲,分別相同的六個令牌
[ ] {} # ##
除了它們的拼寫。
爲什麼無支架編碼是一個問題?令人難以置信的事情是無支撐的代碼 – Cruncher