Mendeklarasikan Pointer Ke Sebuah Fungsi Bahasa C
Pada Artikel ini akan dijelaskan bagaimana cara memdeklarasikan atau membuat pointer ke sebuah fungsi.
Sebelum memahami lebih dalam materi tentang Mendeklarasikan Pointer Ke Sebuah Fungsi Bahasa C, terlebih dahulu pelajari materi tentang: Representasi Uncommon Elemen Array Bahasa C [klik], Pointer Dangling, Void, Null, dan Wild pada Bahasa C [klik], dan Parameter Array Sebagai Pointer Bahasa C [klik].
Asumsikan telah diketahui apa yang dimaksud dengan pointer Bahasa C, sehingga dapat dilakukan pembuatan sebuah pointer ke tipe integer pada bahasa C.
Asumsikan telah diketahui apa yang dimaksud dengan pointer Bahasa C, sehingga dapat dilakukan pembuatan sebuah pointer ke tipe integer pada bahasa C.
Baca Juga:
Sintak:
int * ptrInteger; /* Diberikan operator '*' diantar int dan ptrInteger untuk membuat sebuah pointer.*/
ptrInteger merupakan sebuah pointer yang menuju ke tipe data integer.
Perhatikan contoh penulisan pointer berikut:
int foo(int);
Fungsi foo merupakan sebuah fungsi yang digunakan untuk mengembalikan nilai integer atau nilai bilangan bulat, dan mengambil satu buah argumen dari tipe data integer tersebut. Jadi, dengan menempatkan operator '*' diantara int dan foo(int), maka akan menciptakan sebuah pointer ke fungsi pada Bahasa C.
int * foo(int);
Catatan: Operator presedensi selalu memegang aturannya dalam pembuatan baris kode program pada bahasa C, sehingga pada kondisi tersebut, operator '()' akan mengambil prioritas yang lebih tinggi daripada operator '*' untuk dieksekusi atau dijalankan pada program. Jadi, pada contoh deklarasi yang telah dibuat sebelumnya, fungsi foo dengan satu argumen dari tipe data integer akan mengembalikan nilai dari int * atau dari pointer integer.
Karena langkah tersebut bukanlah sesuai yang diinginkan atau dicapai pada program, maka operator '*' akan diikat dengan operator foo. Oleh karena itu, maka dilakukan perubahan aturan presedensi default dari penulisan sebelumnya dengan menggunakan operator (), agar nilai yang berada di dalam operator '()' akan dieksekusi terlebih dahulu, sebelum operator '*' dieksekusi atau dijalankan pada program, sesuai dengan urutan presedensinya.
int (*foo)(int);
int * ptrInteger; /* Diberikan operator '*' diantar int dan ptrInteger untuk membuat sebuah pointer.*/
ptrInteger merupakan sebuah pointer yang menuju ke tipe data integer.
Perhatikan contoh penulisan pointer berikut:
int foo(int);
Fungsi foo merupakan sebuah fungsi yang digunakan untuk mengembalikan nilai integer atau nilai bilangan bulat, dan mengambil satu buah argumen dari tipe data integer tersebut. Jadi, dengan menempatkan operator '*' diantara int dan foo(int), maka akan menciptakan sebuah pointer ke fungsi pada Bahasa C.
int * foo(int);
Catatan: Operator presedensi selalu memegang aturannya dalam pembuatan baris kode program pada bahasa C, sehingga pada kondisi tersebut, operator '()' akan mengambil prioritas yang lebih tinggi daripada operator '*' untuk dieksekusi atau dijalankan pada program. Jadi, pada contoh deklarasi yang telah dibuat sebelumnya, fungsi foo dengan satu argumen dari tipe data integer akan mengembalikan nilai dari int * atau dari pointer integer.
Karena langkah tersebut bukanlah sesuai yang diinginkan atau dicapai pada program, maka operator '*' akan diikat dengan operator foo. Oleh karena itu, maka dilakukan perubahan aturan presedensi default dari penulisan sebelumnya dengan menggunakan operator (), agar nilai yang berada di dalam operator '()' akan dieksekusi terlebih dahulu, sebelum operator '*' dieksekusi atau dijalankan pada program, sesuai dengan urutan presedensinya.
int (*foo)(int);
Referensi Tambahan:
- Pointer Near, Far, dan Huge Bahasa C Beserta Penjelasannya [klik]
- Linked List Bahasa C Beserta Fungsi dan Penjelasannya [klik]
- Keyword Restrict Bahasa C Beserta Penjelasannya [klik]
- Perbedaan Antara const char *p, char * const p, dan const char * const p Bahasa C [klik]
- Pointer Ke Array Bahasa C dan Penjelasannya [klik]
- Enum Bahasa C dan Penjelasannya [klik]
- Struct Bahasa C dan Penjelasannya [klik]
Artikel ini didedikasikan kepada: Rizky Rahma Dita, Rosalinda Eka Novianti, Sheila Rahmadini, Sri Haryanti, dan Ulil Amri.
Apa yang dimaksud dengan pointer to function pada bahasa C?
BalasHapusPointer to function atau pointer ke fungsi pada bahasa C merupakan bentuk pointer yang menunjuk ke alamat kode fungsi yang dapat dieksekusi.
HapusPointer to function dapat menggunakan pointer untuk memanggil suatu fungsi dan meneruskan fungsi tersebut sebagai bentuk argumen ke fungsi lain.
HapusPointer function juga disebut sebagai pointer subrutin atau pointer prosedur yang menunjuk ke suatu fungsi tertentu.
HapusPointer to function berbeda dengan proses mereferensika nilai data, dimana pointer to function menunjuk ke kode program yang dapta dieksekusi di dalam suatu memori.
Hapus