Teknik Informatika/C99
C99 adalah nama lain dari ISO/IEC 9899:1999, sebuah standar bahasa pemrograman C. Standar ini menggantikan standar C90, dan telah digantikan oleh C11 (dirilis 2011)
Standar bahasa pemrograman ?
suntingSama seperti bahasa manusia, bahasa pemrograman juga memiliki "dialek-dialek tidak resmi". Penutur bahasa pemrograman (yaitu programmer, source code dan compiler) kadang membuat-buat gaya bahasa sendiri, atau istilah baru sendiri. Hal ini dapat menyebabkan masalah, karena antar penutur bahasa pemrograman bisa sulit berkomunikasi satu sama lain. Oleh karena itu, diperlukan semacam "badan bahasa" untuk membakukan suatu bahasa pemrograman.
Kalau dianalogikan dengan bahasa Indonesia, standar bahasa ini ya kurang lebih seperti EYD. Ada satu organisasi resminya, yang membuat panduan bahasa baku.
Sejarah
sunting- ANSI menyusun standar C pada tahun 1989. Resmi menjadi standar internasional pada tahun 1990.
- Amandemen pertama pada tahun 1996, menambahkan pembahasa mengenai encoding (international character sets).
- Revisi selanjutnya, menjadi ISO/IEC 9899:1999. Resmi menjadi standar ANSI pada 2000.
Karakteristik
sunting- Deklarasi variabel tanpa tipe data tidak langsung diasumsikan sebagai tipe data integer.
- Inline function. Fungsi kecil & ringan yang tidak memiliki overhead yang besar ketimbang fungsi biasa. Ketimbang menggunakan mekanisme fungsi biasa (menggunakan stack), fungsi inline hanya menggunakan mekanisme copy-paste definisi fungsi pada setiap pemanggilan fungsi.
- Deklarasi variabel tidak wajib harus dipisahkan dari kode program lagi. Bagian deklarasi dan implementasi pada source code dapat dicampur-campur
- Beberapa tipe data baru : long long int, extended integer, boolean, complex number
- Array dengan kapasitas yang fleksibel (
double arr[]
). Dulu, pada C, setiap array wajib menyertakan panjang array, dan itu tidak bisa diubah-ubah lagi. //
untuk komentar source code satu baris, mengikuti syntax C++ dan Javasnprintf
- Beberapa header baru : stdbool.h, complex.h, tgmath.h dan inttypes.h
- Type-generic math macro function (tgmath.h), berisi fungsi matematika yang otomatis menyesuaikan dengan tipe data inputnya.
- IEEE 754-1985 floating point
- Inisialisasi struct langsung pada bagian deklarasi
struct point p = { .x=1, .y=2};
- Fitur
static
Deteksi
suntingUntuk mendeteksi apakah compiler mendukung C99, kita dapat mengecek apakah __STDC_VERSION__
memiliki nilai 199901L
#if __STDC_VERSION__ >= 199901L
// Compiler support C99
#else
// Compiler tidak support C99
#endif
Pengguna
sunting- Expat : Library C99 untuk membuka file XML. Support stream processing. Dibuat langsung oleh pencipta XML-nya pada tahun 1997.