Hafta Sonu Projesi: C diliyle eğlenmek
- C dili basit ama güçlüdür; tüm bir işletim sistemini bile kolayca yazmayı mümkün kılar
- C dilinin sade sözdizimi, Java, Go gibi birçok sonraki dili etkiledi
- Kod obfuscation sanatının ortaya çıkmasına da katkıda bulundu
IOCCC yarışması
- IOCCC yarışması, kod obfuscation’ın en bilinen örneklerinden biridir
- Yarışma başvurularında sık sık kafa karıştırıcı önişlemci makroları, mantıksız biçimlendirme ve işe yaramayan değişken adları kullanılır
- Bu tür kodları okumak zordur, ancak C dili hem okunabilir hem de kafa karıştırıcı olabilir
switch ifadesi
switch ifadesi de if veya for gibi süslü parantez gerektirmez
- Süslü parantez olmadan kullanıldığında yalnızca tek bir ifade içerebilir
switch ifadesi temelde cilalanmış bir goto gibidir
switch içinde değişken başlatmak beklenmedik davranışlara yol açabilir
case etiketleri
case etiketlerinin switch bloğunun en üst düzeyinde olması gerekmez
if (0) koşul ifadesiyle birlikte kullanılabilir
break ifadesi olmadan da çalışabilir
else ve if kombinasyonu
else ve if kullanılarak switch ifadesinin yerini alacak yapılar kurulabilir
- Süslü parantez olmadan da birden fazla koşul işlenebilir
GNU genişletmeleri
&& işleci kullanılarak bir etiketin adresi alınabilir ve goto ile oraya atlanabilir
- Bu sayede
switch ifadesi yerine başka yapılar kurulabilir
for yerine alternatif
- Döngü kurmak için değişken bildiriminin içinde etiketler kullanılabilir
- GCC’ye özgü olsa da, C diliyle son derece yaratıcı ve kafa karıştırıcı kodlar yazmak mümkündür
Sonuç
- C dili, son derece yaratıcı ve kafa karıştırıcı kodlar yazma olanağı sunar
- Bu tür kodları okumak zor olsa da, C dilinin gücünü gösterir
GN⁺ görüşü
- Bu yazı, C dilinin özgünlüğünü ve karmaşıklığını iyi gösteriyor
- C dilinin farklı kullanım olanaklarını keşfetmek açısından faydalı
- Kod obfuscation gibi sanatsal yönleri de ilgi çekici
- GNU genişletmelerini kullanan örnekler oldukça sıra dışı ve yaratıcı
- C dilini öğrenen yeni geliştiriciler için biraz zorlayıcı olabilir
Henüz yorum yok.