Dalam tutorial ini, anda akan diperkenalkan dengan praprosesor c, dan anda akan belajar menggunakan kompilasi #include, #define dan bersyarat dengan bantuan contoh.
Praprosesor C adalah prapemproses makro (membolehkan anda menentukan makro) yang mengubah program anda sebelum disusun. Transformasi ini boleh merangkumi kemasukan fail header, pengembangan makro dll.
Semua arahan preprocessing bermula dengan #
simbol. Sebagai contoh,
#define PI 3.14
Beberapa kegunaan umum preprocessor C adalah:
Termasuk Fail Header: #include
The #include
prapemproses digunakan untuk memasukkan fail header untuk program C. Sebagai contoh,
#include
Di sini, stdio.h
adalah fail tajuk. The #include
arahan prapemproses menggantikan baris di atas dengan kandungan stdio.h
fail header.
Itulah sebab mengapa anda perlu menggunakan #include
sebelum dapat menggunakan fungsi seperti scanf()
dan printf()
.
Anda juga boleh membuat fail header anda sendiri yang mengandungi deklarasi fungsi dan memasukkannya ke dalam program anda menggunakan arahan preprocessor ini.
#include "my_header.h"
Lawati halaman ini untuk mengetahui lebih lanjut mengenai penggunaan fail tajuk.
Makro menggunakan #define
Makro adalah pecahan kod yang diberi nama. Anda boleh menentukan makro dalam C menggunakan #define
arahan preprocessor.
Inilah contohnya.
#define c 299792458 // speed of light
Di sini, apabila kita menggunakan c dalam program kita, ia digantikan dengan 299792458
.
Contoh 1: #tentukan 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 Makro
Anda juga boleh menentukan makro yang berfungsi dengan cara yang serupa seperti panggilan fungsi. Ini dikenali sebagai makro seperti fungsi. Sebagai contoh,
#define circleArea(r) (3.1415*(r)*(r))
Setiap kali program bertemu circleArea(argument)
, ia digantikan dengan (3.1415*(argument)*(argument))
.
Misalkan, kita lulus 5 sebagai argumen, kemudian berkembang seperti di bawah:
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; )
Lawati halaman ini untuk mengetahui lebih lanjut mengenai makro dan #definisi preprocessor.
Penyusunan Bersyarat
Dalam pengaturcaraan C, anda boleh mengarahkan preprocessor sama ada memasukkan blok kod atau tidak. Untuk melakukannya, arahan bersyarat dapat digunakan.
Ia serupa dengan if
pernyataan dengan satu perbezaan utama.
The if
kenyataan diuji sepanjang masa pelaksanaan untuk memeriksa sama ada satu blok kod perlu dilaksanakan atau tidak sedangkan, yang conditional digunakan untuk memasukkan (atau langkau) satu blok kod dalam program anda sebelum pelaksanaan.
Penggunaan Bersyarat
- gunakan kod yang berbeza bergantung pada mesin, sistem operasi
- menyusun fail sumber yang sama dalam dua program yang berbeza
- untuk mengecualikan kod tertentu dari program tetapi menyimpannya sebagai rujukan untuk tujuan masa depan
Bagaimana menggunakan bersyarat?
Untuk menggunakan bersyarat, #ifdef
, #if
, #defined
, #else
dan #elseif
arahan yang digunakan.
Arahan #ifdef
#ifdef MACRO // conditional codes #endif
Di sini, kod bersyarat dimasukkan dalam program hanya jika MACRO ditentukan.
Arahan #if, #elif dan #else
#if expression // conditional codes #endif
Di sini, ungkapan adalah ungkapan jenis integer (boleh berupa bilangan bulat, watak, ungkapan aritmetik, makro dan sebagainya).
Kod bersyarat dimasukkan dalam program hanya jika ungkapan dinilai ke nilai bukan sifar.
#else
Arahan pilihan boleh digunakan dengan #if
arahan.
#if expression conditional codes if expression is non-zero #else conditional if expression is 0 #endif
Anda juga boleh menambahkan bersarang bersyarat untuk #if… #else
penggunaan anda#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
#ditentukan
Pengendali khas #defined digunakan untuk menguji sama ada makro tertentu ditentukan atau tidak. Ia sering digunakan dengan arahan #if.
#if defined BUFFER_SIZE && BUFFER_SIZE>= 2048 // codes
Makro yang telah ditetapkan
Berikut adalah beberapa makro yang telah ditentukan dalam pengaturcaraan C.
Makro | Nilai |
---|---|
__DATE__ | Rentetan yang mengandungi tarikh semasa |
__FILE__ | Rentetan yang mengandungi nama fail |
__LINE__ | Bilangan bulat yang mewakili nombor garis semasa |
__STDC__ | Sekiranya mengikuti ANSI standard C, maka nilainya adalah integer bukan nol |
__TIME__ | Rentetan yang mengandungi tarikh semasa. |
Contoh 3: Dapatkan masa semasa menggunakan __TIME__
Program berikut menghasilkan masa semasa menggunakan __TIME__
makro.
#include int main() ( printf("Current time: %s",__TIME__); )
Pengeluaran
Masa sekarang: 19:54:39
Bacaan yang Disyorkan
- Kawalan talian
- Pragmas
- Keluaran Praprosesor
- Arahan lain