Proyek Akhir Pekan: Bersenang-senang dengan Bahasa C
- Bahasa C sederhana namun kuat, sehingga seluruh sistem operasi dapat ditulis dengan relatif mudah
- Sintaks ringkas C memengaruhi banyak bahasa penerus seperti Java dan Go
- Juga berkontribusi pada lahirnya seni obfuscation kode
Kompetisi IOCCC
- Kompetisi IOCCC adalah contoh paling representatif dari obfuscation kode
- Karya yang ikut kompetisi sering memakai makro preprocessor yang membingungkan, format yang tidak logis, nama variabel yang tidak membantu, dan sebagainya
- Kode semacam ini sulit dibaca, tetapi C bisa tetap mudah dibaca sekaligus membingungkan
Pernyataan switch
- Pernyataan
switch, seperti if atau for, tidak wajib memakai kurung kurawal
- Jika digunakan tanpa kurung kurawal, hanya satu pernyataan yang dapat dimasukkan
switch pada dasarnya mirip goto yang dipermak
- Inisialisasi variabel di dalam
switch dapat memicu perilaku yang tak terduga
Label case
- Label
case tidak harus berada di tingkat teratas blok switch
- Dapat digunakan bersama kondisi
if (0)
- Bisa tetap berfungsi bahkan tanpa pernyataan
break
Kombinasi else dan if
else dan if dapat digunakan untuk menggantikan pernyataan switch
- Beberapa kondisi dapat ditangani bahkan tanpa kurung kurawal
Fitur ekstensi GNU
- Alamat label dapat diambil dengan operator
&& lalu dilompati menggunakan goto
- Dengan cara ini, pernyataan
switch bisa digantikan
Pengganti pernyataan for
- Loop dapat diimplementasikan dengan memakai label di dalam deklarasi variabel
- Meski khusus GCC, tetap memungkinkan menulis kode C yang sangat orisinal dan membingungkan
Kesimpulan
- Bahasa C menawarkan kemungkinan untuk menulis kode yang sangat orisinal dan membingungkan
- Kode seperti ini sulit dibaca, tetapi menunjukkan betapa kuatnya bahasa C
Opini GN⁺
- Artikel ini dengan baik menunjukkan orisinalitas dan kompleksitas bahasa C
- Berguna untuk mengeksplorasi beragam kemungkinan penggunaan bahasa C
- Sisi artistik seperti obfuscation kode juga menarik
- Contoh yang memanfaatkan ekstensi GNU sangat unik dan kreatif
- Bagi pengembang pemula yang sedang belajar C, isinya bisa terasa agak sulit
Belum ada komentar.