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 ? sunting

Sama 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 Java
  • snprintf
  • 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 sunting

Untuk 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.