NAMA DALAM BAHASA C
Nama (identifier) dipakai untuk mengenali suatu objek dalam sebuah program.
Macam-macam nama :
- nama fungsi
- nama tipe data
- struktur, union, enumerasi
- nama konstanta
- nama objek/variabel
- nama label Struktur Blok dan nama
Mengacu suatu Nama
Dengan menyebutkan (mengacu) suatu nama maka berarti kita mengacu kepada nilainya. Nama yang diacu harus pernah dideklarasikan sebelumnya. Ini tidak berlaku untuk nama fungsi eksternal
- Fungsi eksternal yang belum dideklarasikan dianggap mempunyai return value dan parameter bertipe int atau double (tergantung pada tipe parameter aktual).
- Jika deklarasi implisit ini tidak sesuai akan timbul kesalahan pada saat kompilasi.
- Sebaiknya, setiap fungsi eksternal yang dipakai dideklarasikan dengan prototipe
- terdiri dari huruf, angka, dan garis bawah "_" (under score)
- jumlah karakter penting dalam nama minimum 31
- huruf besar dan huruf kecil dibedakan
- dimulai dengan huruf
- tidak boleh reserved word , untuk C standar (ANSI C):
- Berdasarkan deklarasinya, dibedakan nama global (deklarasi global) dan nama lokal (deklarasilokal)
- Nama global dapat diakses oleh semua fungsi dalam file yang sama (supaya nama ini dapat diakses oleh fungsi di file lain, nama ini harus dideklarasikan lagi di file tersebut)
- Nama yang dideklarasi pada suatu fungsi hanya dapat diakses dalam fungsi tersebut
- Jika ada nama yang sama, yang diacu adalah nama lokal.
Name space (ruang nama) adalah kategori nama yang dapat dipunyai oleh suatu nama yang dideklarasikan. Sebuah nama yang sama dapat dipakai untuk keperluan yang berbeda, asalkan name space-nya berbeda (walaupun pada kuliah ini tidak dianjurkan memakai nama yang sama untuk keperluan yang berbeda.
Ada lima name space dalam bahasa C :
- nama makro preprosesor, ini dipakai pada saat dilakukan preproses program sumber; setelah preproses selesai, nama ini tidak dikenal lagi;
- nama label tujuan perintah goto;
- nama tag struktur/union (nama yang mengikuti kata kunci struct atau union);
- nama anggota struktur/union; masing-masing struktur/ union mempunyai name space sendiri,nama yang sama dapat muncul sebagai anggota struktur/ union yang berbeda;
- nama yang tidak termasuk salah satu di atas, termasuk dalam name space untuk variabel, fungsi, tipe, dan enumerasi.
- Konstanta integer terdiri dari deretan angka, boleh mempunyai prefiks dan/atau sufiks.
- Prefiks:
Ox, OX
angka heksadesimal [0..9, a..f, A..F],
contoh: 0x45 /* nilai 69 bil. dasar 10 */
- Sufiks:
l, L long Konstanta Karakter
- Konstanta karakter terdiri dari deretan satu/lebih karakter yang diapit petik tunggal, contoh 'r'.
- Karakter yang tidak kelihatan di layar atau beberapa karakter khusus, tidak dapat dituliskan langsung sehingga harus menggunakan escape sequence yaitu penulisan nilai konstanta karakter tsb sesuai dengan tabel berikut (semua escape sequence selalu diawali dengan \)
- Konstanta floating terdiri atas bagian integer, titik desimal, bagian pecahan, dan bagian eksponen yang diawali huruf 'e' atau 'E'. Titik desimal atau bagian eksponen dapat tidak ada, namun salah satu harus tetap ada. Konstanta floating boleh mempunyai sufiks.
- Sufiks:
l, L longdouble (tanpa sufiks, tipe double)
- Contoh: 3.141592654, 6.02217e23, 3E8
- Dideklarasikan sebagai enumerator, representasi internalnya adalah konstanta dengan tipe int (lihat bagian deklarasi tipe enumerasi).
- Konstanta string adalah deretan karakter yang dibatasi dengan petik ganda, contoh "IF-223".
- Bertipe "array of character" dengan kelas penyimpanan statik, terinisialisasi dengan karakter yang diberikan (berakhiran '\0'). Efek perubahan pada konstanta string tak terdefinisi.
- Bedakan antara konstanta string (misal "I") dan konstanta karakter (misal 'I'). Konstanta string "I" adalah array dengan dua elemen (karakter I dan '\0'). Konstanta karakter 'I' mempunyai nilai integer sesuai dengan kode set karakter yang dipakai.
Tidak ada komentar:
Write komentar