Preprocessor jika diartikan kedalam bahasa indonesia Pre- artinya sebelum dan
Processor- artinya pemroses. Didalam bahasa pemrograman C/C++
Preprocessor adalah proses yang dilakukan sebelum program di kompilasi.
Preprocessor biasa digunakan untuk menuliskan sebuah makro, penggunaan
pustaka (library), kompilasi berkondisi (conditional compiling), error
generation, pragma.
Didalam bahasa pemrograman C/C++ terdapat beberapa Preprocessor yang dapat digunakan untuk melakukan suatu pekerjaan :
Penulisan Makro dan Pendefinisian konstan
#define
#undef
direktif preprocessing #define dan #undef dapat digunakan sebagai pendefinisian nilai tertentu.Identifier ini dapat berupa konstan atau funsi makro.
syntax:
#define identifier replacement
#undef identifier
Identifier yang didefinisikan dengan #define akan terbaca atau dapat diakses didalam source code sampai dengan bertemu #undef
contoh:
#include
#include
#define KONSTAN 99
main()
{
cout << "nilai KONSTAN = " << KONSTAN;
getch();
}
Fungsi makro
Sebuah fungsi makro dapat didefinisikan dengan #define dengan format sebagai berikut
syntax:
#define identifier(parameter-list) (replacement-text)
contoh:
#include
#include
#define VOLUME_KUBUS(s) (s)*(s)*(s)
main()
{
int n;
int vol;
cout << "masukan sisi kubus : ";
cin >> n;
vol = VOLUME_KUBUS(n);
cout << "volume kubus dengan sisi " << n << " = " << vol;
getch();
}
File inclusion untuk menggunakan pustaka
#include
direktif #include dapat digunakan untuk header file eksternal yang akan diproses oleh compiler
syntax:
#include <header-file>
atau
#include "header-file"
contoh:
#include
#include
main()
{
cout << "menggunakan file header dari iostream libraries\n";
getch();
}
Kompilasi berkondisi (conditional compiling)
#if
#else
#endif
#ifdef
#ifndef
#elif
#if defined
#if !defined
Preprocessor di atas digunakan untuk mengontrol bagaimana source code program akan dikompilasi
Syntax:
#if constant_expression
#else
#endif
atau
#if constant_expression
#elif constant_expression
#endif
#ifdef identifier
#else atau #elif
#endif
#ifndef identifier
#else atau #elif
#endif
#ifdef identifier sama seperti menggunakan #if defined(identifier)
#ifndef identifier sama seperti menggunaka #if !defined(identifier)
Compiler hanya mengkompilasi code setelah ekspresi #if jika constant_expression menghasilakan nilai tidak nol (true). Jika nilai adalah 0 (false), maka compiler akan mengabaikan baris kode sampai bertemu dengan #else, #elif, atau #endif. Direktif #ifdef dan #ifndef dapat digunakan untuk kompilasi berkondisi dari beberapa baris kode berdasarkan sudah atau belumnya identifier didefinisikan
contoh:
#include
#include
main()
{
#if 1
cout << "YuuuHuuuu\n";
#else
cout << "Blink_Blink\n";
#endif
getch();
}
Jika nilai setelah #if diganti dengan 0 maka yang akan tampil kata Blink_Blink
#include
#include
#define BAKPAO
main()
{
cout << "makan mie ayam"
#ifdef BAKPAO
cout << " tambah bakpao";
#endif
getch();
}
Jika definisi BAKPAO di beri comment maka yang akan tampil adalah kata "makan mie ayam"
Error generating
direktif #error akan menghentikan proses kompilasi dan akan menampilkan pesan error
Syntax:
#error message
contoh:
//#define JALAN
#ifndef JALAN
#error kompilasi dibatalkan karena kondisi tidak terpenuhi
#endif
#include
main()
{
// tidak melakukan apa-apa
}
Hilangkan comment pada definisi #define JALAN untuk mengkompile
artikel ini disalin lengkap dari: http://algorpem12mi.blogspot.co.id/2010/10/preprocessor.html
halaman utama website: http://algorpem12mi.blogspot.co.id/
jika mencari artikel yang lebih menarik lagi, kunjungi halaman utama website tersebut. Terimakasih!
Didalam bahasa pemrograman C/C++ terdapat beberapa Preprocessor yang dapat digunakan untuk melakukan suatu pekerjaan :
Penulisan Makro dan Pendefinisian konstan
#define
#undef
direktif preprocessing #define dan #undef dapat digunakan sebagai pendefinisian nilai tertentu.Identifier ini dapat berupa konstan atau funsi makro.
syntax:
#define identifier replacement
#undef identifier
Identifier yang didefinisikan dengan #define akan terbaca atau dapat diakses didalam source code sampai dengan bertemu #undef
contoh:
#include
#include
#define KONSTAN 99
main()
{
cout << "nilai KONSTAN = " << KONSTAN;
getch();
}
Fungsi makro
Sebuah fungsi makro dapat didefinisikan dengan #define dengan format sebagai berikut
syntax:
#define identifier(parameter-list) (replacement-text)
contoh:
#include
#include
#define VOLUME_KUBUS(s) (s)*(s)*(s)
main()
{
int n;
int vol;
cout << "masukan sisi kubus : ";
cin >> n;
vol = VOLUME_KUBUS(n);
cout << "volume kubus dengan sisi " << n << " = " << vol;
getch();
}
File inclusion untuk menggunakan pustaka
#include
direktif #include dapat digunakan untuk header file eksternal yang akan diproses oleh compiler
syntax:
#include <header-file>
atau
#include "header-file"
contoh:
#include
#include
main()
{
cout << "menggunakan file header dari iostream libraries\n";
getch();
}
Kompilasi berkondisi (conditional compiling)
#if
#else
#endif
#ifdef
#ifndef
#elif
#if defined
#if !defined
Preprocessor di atas digunakan untuk mengontrol bagaimana source code program akan dikompilasi
Syntax:
#if constant_expression
#else
#endif
atau
#if constant_expression
#elif constant_expression
#endif
#ifdef identifier
#else atau #elif
#endif
#ifndef identifier
#else atau #elif
#endif
#ifdef identifier sama seperti menggunakan #if defined(identifier)
#ifndef identifier sama seperti menggunaka #if !defined(identifier)
Compiler hanya mengkompilasi code setelah ekspresi #if jika constant_expression menghasilakan nilai tidak nol (true). Jika nilai adalah 0 (false), maka compiler akan mengabaikan baris kode sampai bertemu dengan #else, #elif, atau #endif. Direktif #ifdef dan #ifndef dapat digunakan untuk kompilasi berkondisi dari beberapa baris kode berdasarkan sudah atau belumnya identifier didefinisikan
contoh:
#include
#include
main()
{
#if 1
cout << "YuuuHuuuu\n";
#else
cout << "Blink_Blink\n";
#endif
getch();
}
Jika nilai setelah #if diganti dengan 0 maka yang akan tampil kata Blink_Blink
#include
#include
#define BAKPAO
main()
{
cout << "makan mie ayam"
#ifdef BAKPAO
cout << " tambah bakpao";
#endif
getch();
}
Jika definisi BAKPAO di beri comment maka yang akan tampil adalah kata "makan mie ayam"
Error generating
direktif #error akan menghentikan proses kompilasi dan akan menampilkan pesan error
Syntax:
#error message
contoh:
//#define JALAN
#ifndef JALAN
#error kompilasi dibatalkan karena kondisi tidak terpenuhi
#endif
#include
main()
{
// tidak melakukan apa-apa
}
Hilangkan comment pada definisi #define JALAN untuk mengkompile
artikel ini disalin lengkap dari: http://algorpem12mi.blogspot.co.id/2010/10/preprocessor.html
halaman utama website: http://algorpem12mi.blogspot.co.id/
jika mencari artikel yang lebih menarik lagi, kunjungi halaman utama website tersebut. Terimakasih!
No comments:
Post a Comment