最近我遇到了一种奇怪的C编程语言语法。
首先,让我们看看代码:
main(void) {
int a[10:> ;
printf("asdf");
return 0;
}
你可以用gcc编译它:
/tmp gcc sample.c
sample.c: In function ‘main’:
sample.c:3: warning: incompatible implicit declaration of built-in function ‘printf’
如您所见,没有错误或任何与之相关的警告。那么这意味着:>
等于CPL中的]
?
怎么会发生这种情况?
BTW:我正在使用gcc 4.2.1。
答案 0 :(得分:24)
是的,这很有效。
它被称为digraph并且之所以被发明,是因为在过去(20世纪90年代中期),仍然有人使用串行终端(有点像PC,但没有本地处理),其中一些使用了7-bit character set。它是从ASCII派生的,但是在ASCII有[
和]
的情况下,派生字符集将改为使用其他字形(例如,Å和Ä)。