Fungsi Nested Bahasa C Kompilator dan GCC
Nested function tidak didukung penggunannya pada bahasa C karena tidak dapat mendefinisikan sebuah fungsi dengan menggunakan fungsi lainnya dalam bahasa C. Proses deklarasi fungsi nested dapat didlakukan pada sebuah fungsi bahasa C, tetapi hal tersebut bukan bentuk aplikasi dari fungsi nested, karena definisi fungsi nested tidak dapat mengakses variabel lokal dari blok sekitarnya, dimana fungsi nested tersebut hanya dapat mengakses variabel global dari modul yang dikandung didalamnya. Ini dilakukan agar pencarian variabel global tidak harus melalui direktori, seperti pada Bahasa C, jika terdapat dua cakupan nested berupa scope lokal dan global yang lebih dari itu, secara built-in. Oleh karena itu, fungsi nested hanya memiliki penggunaan terbatas. Jika user mencoba mengakses fungsi bersarang pada Bahasa C, maka akan mendapatkan kesalahan waktu kompilasi ketika program dijalankan.
// Program Bahasa C untuk
// ilustrasi konsep fungsi
// bersarang.
#include <stdio.h>
int main(void)
{
printf("Main");
int fun()
{
printf("fun");
// Pendefinisian fungsi view()
// di dalam fungsi fun().
int view()
{
printf("view");
}
return 1;
}
view();
}
Output:Compile time error: undefined reference to `view'
Ekstensi dari kompilator GNU Bahasa C memungkinkan untuk melakukan deklarasi dari fungsi nested, dimana deklarasi dari fungsi nested tersebut berada dibawah ekstensi GCC yang harus diawati dengan keyword auto.
Contoh:
// Program bahasa C dari
// fungsi nested dengan
// bantuan ekstensi gcc.
#include <stdio.h>
int main(void)
{
// Deklarasi fungsi dengan
// keyword auto.
auto int view();
// Memanggil fungsi.
view();
printf("Main\n");
int view()
{
printf("View\n");
return 1;
}
printf("MAKAN");
return 0;
}
Output:view
Main
MAKAN
- Pengenalan Pointer Bahasa C Serta Penjelasannya
- Konsep Pointer Ke Pointer Bahasa C Beserta Penjelasannya
- Parameter Array Sebagai Pointer Bahasa C
- Pointer Dangling, Void, Null, dan Wild pada Bahasa C
- Representasi Uncommon Elemen Array Bahasa C
- Mendeklarasikan Pointer Ke Sebuah Fungsi Bahasa C
- Pointer VS Array Bahasa C Beserta Penjelasannya
5 komentar untuk "Fungsi Nested Bahasa C Kompilator dan GCC"
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 -
Apa yang dimaksud dengan fungsi nested pada Bahasa C?
BalasHapusFungsi nested dapat didefinisikan pada bagian manapun dimana deklarasi variabel tersebut dimungkinkan, yang memungkinkan untuk fungsi nested dalam suatu fungsi yang bersarang.
HapusFungsi nested pada bahasa C dapat dideklarasikan sebelum fungsi tersebut ditentukan, sebelum menggunakan keyword auto.
HapusFungsi bersarang merupakan fungsi yang sepenuhnya terkandung dalam fungsi induk, dimana dalam fungsi apapun pada file program dapat menyertakan fungsi lainnya.
HapusBahasa C Tidak bisa menggunakan nested function karena akan membenahi program ketika mengambil memori.
Hapus