Pemrograman C

Makro dalam bahasa C

Makro dalam bahasa C
Makro dalam bahasa C adalah bagian dari kode yang telah diberi nama. Ketika nama digunakan di mana saja dalam program, nilai makro diganti sebelum kompilasi program. Pada artikel ini, kita akan melihat secara detail cara menulis makro dalam bahasa C.

Perhatikan kode berikut:

MULAILAH
INTEGER n=5;
PRINT("Nilai n adalah %d",n);
AKHIR

Kode di atas bukan kode C yang valid.

Tetapi kode berikut ini valid:

//Contoh 1.c
#define MULAI int main()
#tentukan AKHIR
#definisikan INTEGER menjadi
#define PRINT(A,B) printf(A,B)
MULAILAH
INTEGER n=5;
PRINT("Nilai n adalah %d",n);
AKHIR

Sebelum kompilasi, makro START, INTEGER, PRINT dan END telah diganti dengan nilainya, dan kode tersebut menjadi kode C yang valid. Kita bisa mengeceknya dengan menggunakan perintah berikut:

gcc -E Contoh1.c

Perintah ini akan ditampilkan setelah memperluas semua makro.

Sekarang kita akan melihat berbagai jenis makro:

1. Makro seperti objek:

Sintaksis:

#define macro_name macro_value

Jika makro membutuhkan lebih dari satu baris, kita dapat melakukannya sebagai berikut:

#define macro_name macro_value1 \
makro_nilai2 \
makro_nilai3
#tentukan MAX 200

Makro ini terlihat seperti objek data itu sebabnya jenis makro ini disebut sebagai makro seperti objek.

//Contoh2.c
//#sertakan
#tentukan MAX 200
int utama()

printf("Nilai MAX adalah : %d",MAX);
kembali 0;

Di Contoh2.c, MAKS adalah makro. Dari output, kita amati bahwa MAKSIMAL diganti dengan nilainya 200.

2. Makro seperti fungsi:

Sintaksis:

#define macro_name() macro_value

nama_makro adalah nama makro yang ditentukan pengguna. Sepasang tanda kurung harus diletakkan setelah nama_makro. Tidak ada ruang yang diperbolehkan antara nama_makro dan tanda kurung. Kami juga dapat menyampaikan argumen dalam jenis makro ini.

#tentukan tambah(x,y) x+y

Makro ini terlihat seperti panggilan fungsi itu sebabnya jenis makro ini disebut makro seperti fungsi.

//Contoh3.c
#tentukan tambah(x,y) x+y
int utama()

dalam sebuah;
mengapung b;
a = tambah(4,5);
b = tambah(2.5,3.6)
kembali 0;

Dalam Contoh3.c, kita telah melihat bahwa tidak seperti fungsi C, makro hanya mengganti kode dengan argumen tanpa menghitungnya. Jadi, kita bisa melewatkan tipe data yang berbeda menggunakan makro yang sama.

Jika kita menempatkan spasi di antara nama makro dan tanda kurung, itu berfungsi sama dengan makro seperti objek. Di bawah C Contoh menggambarkan ini.

//Contoh4.c
#tentukan tambah (x,y) x+y
int utama()

dalam sebuah;
mengapung b;
a = tambah(4,5);
b = tambah(2.5,3.6)

Dalam Contoh4.c, kita telah melihat bahwa penjumlahan makro diganti dengan (x,y) x+y . Sama seperti makro seperti objek.

3. Makro untuk Token Paste:
Dalam bahasa C, operator ## digunakan untuk menempelkan token. Dengan menggunakan operator ini, kita dapat menggabungkan dua token yang valid menjadi satu token yang valid.
Contoh:

//Contoh5.c
#define MARGE(x,y) x##y
int utama()

int jumlah = MARGE(52,34);
kembali 0;

Jika kami mencoba menempelkan token yang tidak menghasilkan token yang valid, kompiler C memberikan kesalahan atau peringatan.

//Contoh6.c
#define MARGE(x,y) x##y
int utama()

int jumlah = MARGE(52,+);
kembali 0;

Di Contoh6.c, kami memiliki pesan kesalahan karena, setelah kombinasi dua token, kami mendapatkan token '52+' yang tidak valid.

4. Makro untuk Merangkai:
Dalam bahasa C, operator # digunakan untuk mengubah parameter makro menjadi konstanta string. Ketika operator # didahului dengan parameter makro, parameter dikonversi menjadi string literal. Merangkai dapat digunakan untuk makro seperti objek dan seperti fungsi.
Contoh:

//Contoh7.c
#define STRINGIZING(x) #x
int utama()

printf(STRINGIZING(Halo Dunia));
kembali 0;

Di Contoh7.c kita sudah mendapat string "Hello World" menggunakan makro STRINGIZING.

Kesimpulan:

Artikel ini telah mempelajari tentang semua jenis makro seperti Makro seperti objek, Makro seperti fungsi, Makro untuk Menempel Token, Makro untuk Merangkai dan Makro untuk Merangkai dalam bahasa C. Sekarang kita dapat menggunakan makro dalam program C kita tanpa ragu.

Kontrol & kelola gerakan mouse di antara beberapa monitor di Windows 10
Manajer Mouse Tampilan Ganda memungkinkan Anda mengontrol & mengonfigurasi gerakan mouse di antara beberapa monitor, dengan memperlambat gerakannya di...
WinMouse memungkinkan Anda menyesuaikan & meningkatkan gerakan penunjuk tetikus di PC Windows
Jika Anda ingin meningkatkan fungsi default penunjuk tetikus Anda, gunakan freeware WinMouse. Ini menambahkan lebih banyak fitur untuk membantu Anda m...
Tombol klik kiri mouse tidak berfungsi pada Windows 10
Jika Anda menggunakan mouse khusus dengan laptop, atau komputer desktop, tetapi but tombol klik kiri mouse tidak berfungsi pada Windows 10/8/7 untuk b...