3 puan yazan GN⁺ 2024-07-01 | Henüz yorum yok. | WhatsApp'ta paylaş

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.

Henüz yorum yok.