Pemanggilan dalam bahasa C merujuk pada cara sebuah fungsi dipanggil dan dieksekusi. Ada beberapa jenis pemanggilan dalam bahasa C, yaitu:
Pemanggilan Fungsi:
Ini adalah jenis pemanggilan yang paling umum, di mana sebuah fungsi dipanggil dengan menyebutkan namanya dan memberikan argumen yang diperlukan.
Contoh:
#include <stdio.h>
void greet() {
printf("Hello, World!\\\\n");
}
int main() {
greet(); // Pemanggilan fungsi greet
return 0;
}
Pemanggilan dengan Nilai (Call by Value):
Pada metode ini, salinan nilai argumen dikirim ke fungsi. Perubahan yang dilakukan pada argumen dalam fungsi tidak mempengaruhi nilai asli.
Contoh:
#include <stdio.h>
void modifyValue(int x) {
x = 10;
}
int main() {
int a = 5;
modifyValue(a);
printf("Nilai a: %d\\\\n", a); // Output: Nilai a: 5
return 0;
}
Pemanggilan dengan Referensi (Call by Reference):
Pada metode ini, alamat memori dari argumen dikirim ke fungsi, sehingga perubahan yang dilakukan pada argumen dalam fungsi akan mempengaruhi nilai asli.
Contoh:
#include <stdio.h>
void modifyValue(int *x) {
*x = 10;
}
int main() {
int a = 5;
modifyValue(&a);
printf("Nilai a: %d\\\\n", a); // Output: Nilai a: 10
return 0;
}
Pemanggilan Rekursif:
Ini adalah ketika sebuah fungsi memanggil dirinya sendiri. Pemanggilan rekursif sering digunakan dalam algoritma yang memecah masalah menjadi sub-masalah yang lebih kecil.
Contoh:
#include <stdio.h>
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int number = 5;
printf("Faktorial dari %d adalah %d\\\\n", number, factorial(number)); // Output: Faktorial dari 5 adalah 120
return 0;
}
Pemanggilan Fungsi melalui Pointer ke Fungsi:
Fungsi dapat dipanggil melalui pointer ke fungsi. Ini berguna dalam konteks fungsi callback atau tabel fungsi.
Contoh:
#include <stdio.h>
void greet() {
printf("Hello, World!\\\\n");
}
int main() {
void (*funcPtr)(); // Mendeklarasikan pointer ke fungsi
funcPtr = greet; // Menugaskan alamat fungsi greet ke pointer
funcPtr(); // Memanggil fungsi greet melalui pointer
return 0;
}
Pemahaman tentang berbagai jenis pemanggilan dalam bahasa C sangat penting untuk menulis kode yang efisien dan memahami bagaimana data ditransfer antar fungsi.