Anda di halaman 1dari 10
PREPROCESSOR BAHASA C Bahasa C mencakup beberapa instruksi preprocessor yang digunakan unt ‘memberikan suatu perintah pada compiler. Instruksi-instruksi preprocessor terseby adalah define elif Helse endif error tif ifdef ifndef include inline ‘pragma undef Masing-masing fungsi tersebat di atas akan dijelaskan secara singkat di dalar bab ini. (Instruksi yang berhubungan dengan #elif, #else, #endif, ifdef, dan Hi semuanya dijelaskan dalam #%f) “define” digunakan untuk melaksanakan subtitusi makro dari satu lemb: teks ke lembar teks yang lain melalui suatu file dimana teks tersebut digunakan. Berikut ini bentuk yang biasa dipakai define name character-sequence Perhatikan, bahwa dalam perintah ini, tidak ada tanda titik koma, Selanjutnya, bila karakter awal telah berhasil, maka dia akan berhenti hanya pada akhir baris| Contob, jika kita ingin memakai “TRUE” untuk angka | dan “FALSE” untuk angka 0, maka kita buat dua #define makro = define TRUE 1 fdefine FALSE 0 Pada contoh tersebut, compiler akan mengganti'1 dan 0 setiap menjumpai ‘TRUE dan FALSE. Instruksi #define mempunyai feature kuat yang:lain : suatu makro dapat ‘mempuyai argumen, Makro yang mempunyai argumen akan berkerja hampir sara dengan fungsi. Setiap ditemukan makro, maka argumen akan bergabung dengan makro yang ditempatkan oleh argumen aktual tersebut yang berada pada program. Contoh = Hinclude ‘studio.h" define ABS(a) _(a)<0 2 - (a) + (a) main (void) ( printf ("abs of -1 and 1: %d %d", ABS(-1), ABS(1)); return 0; } Ketika program tersebut dicompile, “a” pada definisi makro akan diganti dengan angka I dan 1, tanda kurng yang ada di “a” sangat diperlukan untuk meyakinkan subtitusi pada semua hal yang semestinya. CContoh, jika tanda kurung pada “a” dihilangkan maka ekspresi ABS(10-20) akan dikembalikan pada : 10-20<0 ? -10-20 : 10-20 ddan akan mempunyai hasil yang salah. Penggunaan subtitust makro pada tempat yang ri, mempunyai satu keuntungan utama : yaitu akan mempercepat code karena tidak ada “overhead” untuk panggilan fungsi yang didatangkan. ‘Namun demikian, percepatan tersebut akan membuat program semakin besar. Hal ini disebabkan karena,adanya duplikat kode. #IF, #IFDEF, #IFNDEF, #ELSE, #ELIF, HENDIF Pada pokoknya, #error ini digunakan pada “debugging”. Berikut ini bentuk y biasa dipakai Herror message Jika dijumpai #error, maka akan terlihat suatw pesan dan angka baris, Instruksi-instruksi processor tersebut digunakan pada beberapa porsi varias compile program secara selektf. Ide yang umum adalah bahwa jika suatu ekspresi setelah #if #ifdef atau #ifndef adalah benar, maka code yang berada diantara sal satu dari mereka dan #endif, akan tersusun; tapi jika yang terjadi sebaliknya, maki akan terlompati. #endif digunakan untuk menandai akhir suatu blok. Instruksi #e dapat digunakan dengan salah satu dari mereka dengan cara yang sama, yait dengan “else” pada perintah C. BBerikut ini bentuk yang biasa dipakai pada #if : tif constant-expression Jka ekpresi konstanta tersebut betul, maka blok code akan tersusun. Berikut ini bentuk yang biasa dipakai pada #ifdef : ffifdef macro-name Jika nama makro (macro-name) telah ditentukan dengan perintah #define, maka blok code berikutnya akan tersusun. Contoh berikut ini adalah tentang cara beberapa instruksi preprocessor yang] bekerja bersama code: ————— #include “studio.h" define ted 10 main (void) { ifdef ted printf ("Hi Tex\n"); endif printf ("bye bye\n"); fof 10<9 printf ("Hi George\n"); endif d yang akan mecetak “Hii Ted” dan “bye-bye” pada layar, tapi bukan “Hi George”. Instruksi Helif digunakan untuk membuat suatu perintah “if-else-if”. Berikut ini bentuk yang sering dipakai : elif constant-expression elif dapat digunakan dengan #if, tapi tidak dengan #ifdef atau Hinde. Kita juga dapat menggunakan #if atau #elif untuk menentukan jika “macro ‘name” telah didefinisikan dengan menggunakan operator “defined” preprocessing. Bentuk yang biasa dipakai adalah : if defined macro-name statement sequence fendi Jika nama makro telah didefinisikan, maka perintah yang benar akan tersusun, jika sebatiknya akan terlompati, Misalnya, program ini akan menyusun conditional ‘code, karena “DEBUG” telah didefinisikan oleh program : #include, "studio-n* #define DEBUG main() { int i=100; #INCLUDE Pt] #if defined DEBUG print£("value of i is: %d/n", i) fendif Wt) } Kita juga dapat mendahulukan “defined” dengan operator! untuk menjai kompilasi conditional jika macro tidak didefinisikan. Instruksi processor ffinclude akan memerintah compiler untuk membaca menyusun file sumber yang lain. Bentuk yang biasa dipakai adalah include "filename" include File sumber yang akan dibaca harus ditutup antara dua tanda kurung atau tand: ‘kurung lancip. Jika nama file ditutup dengan tanda kurung lancip, maka file