2013-05-26 18 views
19

kısa süre önce C Programlama Dili'nin tuhaf bir dilbilgisine rastladım.`Programlama Dili'nde` `(kolon, daha büyük, gülümseme yüzdesi) ne anlama geliyor?

main(void) { 
int a[10:> ; 
printf("asdf"); 
return 0; 
} 

Ve gcc ile derlemek olabilir:

Öncelikle kodunu görelim Gördüğünüz gibi, hata veya onunla ilgili herhangi bir uyarı var

/tmp gcc sample.c 
sample.c: In function ‘main’: 
sample.c:3: warning: incompatible implicit declaration of built-in function ‘printf’ 

bu. Yani bu, :> CPL'de ]'a eşittir anlamına mı geliyor?

Bu nasıl olabilir?

BTW: gcc 4.2.1 kullanıyorum.

+4

Bu bir digraftır, bir göz atın [here] (http://en.wikipedia.org/wiki/Digraphs_and_trigraphs) – Zlatomir

+0

ÇOKLU olarak işaretlenmiş bu nesneye GERÇEKTEN gelin. OP, digraf/trigrafları bilmiyordu. Yukarıda belirtilen “kopyalar”, OP'nin rapor ettiği şeye çok az veya hiç benzemez. Soru soran insanların, belirli bir konu hakkında zaten bildiklerimizi her zaman bilmediğini varsaymak zorundayız. –

+11

@jimmcnamara It bir çoğalt. Tamam, bu ''> '' ve diğerlerini kullandı <: ', ama bu pek bir fark değil. Yinelenen olmak, bunun kötü bir soru olduğu anlamına gelmez (genel olarak iyi olduğu düşünülen +15 puanı). Sadece, iyi, yinelenen, (temelde) aynı şey önceden sorulmuş ve cevaplanmıştır. –

cevap

24

Evet, bu işe yarar.

Bir digraph denir ve (tür bir PC gibi ama yerel işleme olmadan) çünkü seri terminalleri kullanılarak insanlar hala vardı eski günleri (1990'ların ortalarında) icat edildi ve bunlardan bazıları bir 7-bit character set kullandı. ASCII'den türetilmiştir, ancak ASCII'nin [ ve ] olduğu yerde, türetilmiş karakter kümesi bunun yerine başka gliflere (örneğin, Å ve Ä) sahip olacaktır.

+6

Eminim digraflar 1989'dan önce icat edilmiştir. – aschepler

+1

digraflar 1990'lardan önce oldukça iyiydi. Bir tty bir masa gibi daha fazla baktı. Ve 50 baudda koştum. –

+5

Üzgünüm, sadece C dili hakkında konuştuğum belli değildi. 1990'ların ortasındaki dile C ** cinsinden digraflar eklenmiştir. Trigraflar 1989 standardındaydı. Pascal, 1980'lerde, muhtemelen 1970'lerde ('(.' ve'.) '' En azında kullanılan di s erleri kullandı. Eminim daha önce de vardı. Yine de, dil (ler) de artık işe yaramaz bagaj. * Neden * digrafların var olduğunu açıklamak için –