Dalam tutorial ini, Anda akan diperkenalkan dengan c preprocessor, dan Anda akan belajar menggunakan #include, #define dan kompilasi kondisional dengan bantuan contoh.
Praprosesor C adalah praprosesor makro (memungkinkan Anda menentukan makro) yang mengubah program Anda sebelum dikompilasi. Transformasi ini dapat berupa penyertaan file header, ekspansi makro, dll.
Semua arahan preprocessing dimulai dengan #
simbol. Sebagai contoh,
#define PI 3.14
Beberapa kegunaan umum dari C preprocessor adalah:
Termasuk File Header: #include
The #include
preprocessor digunakan untuk menyertakan file header untuk program C. Sebagai contoh,
#include
Di sini, stdio.h
adalah file header. The #include
preprocessor direktif menggantikan baris di atas dengan isi stdio.h
file header.
Itulah alasan mengapa Anda perlu menggunakan #include
sebelum Anda dapat menggunakan fungsi seperti scanf()
dan printf()
.
Anda juga dapat membuat file header Anda sendiri yang berisi deklarasi fungsi dan memasukkannya ke dalam program Anda menggunakan arahan preprocessor ini.
#include "my_header.h"
Kunjungi halaman ini untuk mempelajari lebih lanjut tentang menggunakan file header.
Makro menggunakan #define
Makro adalah fragmen kode yang diberi nama. Anda dapat menentukan makro di C menggunakan #define
arahan preprocessor.
Berikut contohnya.
#define c 299792458 // speed of light
Di sini, ketika kami menggunakan c dalam program kami, itu diganti dengan 299792458
.
Contoh 1: #define preprocessor
#include #define PI 3.1415 int main() ( float radius, area; printf("Enter the radius: "); scanf("%f", &radius); // Notice, the use of PI area = PI*radius*radius; printf("Area=%.2f",area); return 0; )
Berfungsi seperti Macro
Anda juga dapat menentukan makro yang bekerja dengan cara yang mirip seperti panggilan fungsi. Ini dikenal sebagai makro mirip fungsi. Sebagai contoh,
#define circleArea(r) (3.1415*(r)*(r))
Setiap kali program bertemu circleArea(argument)
, itu diganti dengan (3.1415*(argument)*(argument))
.
Misalkan, kita meneruskan 5 sebagai argumen, kemudian meluas seperti di bawah ini:
circleArea(5) expands to (3.1415*5*5)
Contoh 2: Menggunakan #define preprocessor
#include #define PI 3.1415 #define circleArea(r) (PI*r*r) int main() ( float radius, area; printf("Enter the radius: "); scanf("%f", &radius); area = circleArea(radius); printf("Area = %.2f", area); return 0; )
Kunjungi halaman ini untuk mempelajari lebih lanjut tentang makro dan #define preprocessor.
Kompilasi Bersyarat
Dalam pemrograman C, Anda dapat menginstruksikan preprocessor apakah akan menyertakan blok kode atau tidak. Untuk melakukannya, arahan bersyarat dapat digunakan.
Ini mirip dengan if
pernyataan dengan satu perbedaan utama.
The if
pernyataan diuji selama waktu eksekusi untuk memeriksa apakah blok kode harus dijalankan atau tidak sedangkan, conditional digunakan untuk memasukkan (atau melewatkan) blok kode dalam program Anda sebelum eksekusi.
Penggunaan Bersyarat
- menggunakan kode yang berbeda tergantung pada mesin, sistem operasi
- mengkompilasi file sumber yang sama dalam dua program berbeda
- untuk mengecualikan kode tertentu dari program tetapi menyimpannya sebagai referensi untuk tujuan masa depan
Bagaimana cara menggunakan kondisional?
Untuk menggunakan kondisional, #ifdef
, #if
, #defined
, #else
dan #elseif
arahan yang digunakan.
Petunjuk #ifdef
#ifdef MACRO // conditional codes #endif
Di sini, kode bersyarat dimasukkan dalam program hanya jika MAKRO ditentukan.
Petunjuk #if, #elif dan #else
#if expression // conditional codes #endif
Di sini, ekspresi adalah ekspresi berjenis integer (bisa berupa integer, karakter, ekspresi aritmatika, makro, dan sebagainya).
Kode kondisional disertakan dalam program hanya jika ekspresi dievaluasi ke nilai bukan nol.
#else
Direktif opsional dapat digunakan dengan #if
direktif.
#if expression conditional codes if expression is non-zero #else conditional if expression is 0 #endif
Anda juga dapat menambahkan bersyarat bersyarat untuk Anda #if… #else
gunakan#elif
#if expression // conditional codes if expression is non-zero #elif expression1 // conditional codes if expression is non-zero #elif expression2 // conditional codes if expression is non-zero #else // conditional if all expressions are 0 #endif
#defined
Operator khusus #defined digunakan untuk menguji apakah makro tertentu ditentukan atau tidak. Ini sering digunakan dengan arahan #if.
#if defined BUFFER_SIZE && BUFFER_SIZE>= 2048 // codes
Makro Standar
Berikut adalah beberapa makro yang telah ditentukan dalam pemrograman C.
Makro | Nilai |
---|---|
__DATE__ | Sebuah string berisi tanggal saat ini |
__FILE__ | Sebuah string yang berisi nama file |
__LINE__ | Integer yang mewakili nomor baris saat ini |
__STDC__ | Jika mengikuti standar ANSI C, maka nilainya adalah bilangan bulat bukan nol |
__TIME__ | Sebuah string berisi tanggal sekarang. |
Contoh 3: Dapatkan waktu saat ini menggunakan __TIME__
Program berikut mengeluarkan waktu saat ini dengan menggunakan __TIME__
makro.
#include int main() ( printf("Current time: %s",__TIME__); )
Keluaran
Waktu saat ini: 19:54:39
Bacaan yang Direkomendasikan
- Kontrol garis
- Pragmas
- Keluaran Praprosesor
- Arahan lainnya