Lompat ke konten Lompat ke sidebar Lompat ke footer

Stringsizing dan Tokenpasting Bahasa C dan Fungsinya

Artikel ini akan menjelaskan perbedaan antara operator stringsizing (#) dan operator tokenpasting (##) pada bahasa pemrograman C.


4 Contoh Program Operator Stringsizing dan Tokenpasting pada Bahasa C
Ilustrasi Stringsizing dan Tokenpasting Bahasa C

Sebelum memahami materi tentang Stringsizing dan Tokenpasting Bahasa C dan Fungsinya, terlebih dahulu pelajari materi tentang: Printf dengan Operator Increment pada Bahasa C [klik]Fakta tentang Sizeof pada Bahasa C [klik], dan Strlen dan Sizeof Bahasa C dan Fungsinya [klik].

Operator stringsizing (#)
Operator ini membuat argumen aktual yang sesuai dengan yang dilampirkan dalam tanda kutip ganda. Operator '#' umumnya disebut dengan operator stringizing, yang mengubah argumen yang mendahuluinya menjadi string kutipan. 


satu, preprosesor berikut ini mengubah baris printf(mkstr(makannasipadang)); menjadi printf("makannasipadang");.

Contoh:

// Program bahasa C untuk

// mengilustrasikan operator

// (#) 

#include <stdio.h> 

#define mkstr(s) #s 

 

int main(void

printf(mkstr(makannasipadang)); 

return 0

} 

Output:
makannasipadang

dua, Pada program berikut, nilai dari 'a' akan diganti oleh makro.

Contoh:

// Program bahasa C untuk

// mengilustrasikan operator

// (#)

#include <iostream>

using namespace std;

 

#define a 8.3297

 

int main()

{

cout << "Nilai dari a adalah " << a << endl;

 

return 0;

}

Output:
Nilai dari a adalah 8.3297

tiga, Program berikut ini menemukan nilai maksimal dari dua angka yang menggunakan makro.

Contoh:

// Program bahasa C untuk

// mengilustrasikan operator

// (#) 

#include <iostream> 

using namespace std; 

 

#define MAX(i, j) (((i) > (j)) ? i : j) 

 

int main() 

int a, b; 

 

a = 250

b = 25

 

cout << "Nilai maksimum adalah " << MAX(a, b) << endl; 

 

return 0

}

Output:
Nilai maksimum adalah 250

Operator tokenpasting (##)
Operator tokenpasting (##) memungkinkan token menggunakan argumen aktual untuk dilakukan penggabungan guna membentuk token yang baru. Operator '##' berguna untuk menggabungkan dua token menjadi satu token baru sambil memperluas nilai makro. Operator '##' digunakan untuk operator tokenpasting. Ketika makro diperluas, maka dua token yang terletak diantara operator '##' akan dikombinasi menjadi satu token, yang kemudian akan mengganti '##' dan dua token asli pada makro yang telah diperluas tersebut.

Preprosesor mentransformasi printf("%d,concat(x,y)"); menjadi printf ("%d", xy);.

Contoh:

// Program bahasa C untuk

// mengilustrasikan operator

// (##) 

#include <stdio.h> 

#define concat(a, b) a##b 

 

int main(void

int xy = 30

printf("%d", concat(x, y)); 

 

return 0

}

Output:
30

Penerapan: Operator '##' menyediakan jalan untuk menggabungkan argumen aktual selama perluasan makro dilakukan. Jika sebuah parameter pada teks yang diganti didekatkan dengan operator '##', maka parameter tersebut akan diganti oleh argumen aktual, dan operator '##' yang mengelilinginya akan dihilangkan, dan hasilnya pun akan dibaca ulang oleh program.

Artikel ini didedikasikan kepada: Syafira Nanda Anggraeni, Yosita Cecilia, Zidan Alfian Bahtiar, Achmad Syaefuddin, dan Agung Wicaksono.

5 komentar untuk "Stringsizing dan Tokenpasting Bahasa C dan Fungsinya"

  1. Apa yang dimaksud dengan operator token pasting dalam bahasa C?

    BalasHapus
    Balasan
    1. Operator token pasting adalah salah satu operator yang dimiliki opera preprosesor dalam bahasa C. Operator ini digunakan untuk mengirimkan perintah dari kompilator untuk menambah atau menggabungkan dua token menjadi satu string baru. Operator token pasting digunakan pada operator definisi makro.

      Hapus
    2. Simbol operator tokenpasting adalah ##

      Hapus
  2. Apa yang dimaksud dengan stringsizing pada bahasa C?

    BalasHapus
    Balasan
    1. Operator stringsizing digunakan untuk mengubah token menjadi string dalam bahasa pemrograman C. Operator ini mengubah nilai parameter makro menjadi sebuah string, dimana hal ini akan menyebabkan parameter makro diapit dalam string kutip ganda.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -