5 Fakta tentang Keyword Register pada Bahasa C

Penggunaan register jauh lebih cepat dari pada penggunaan memori untuk melakukan sebuah akses, sehingga untuk variabel yang paling intensitas penggunaannya paling sering pada program bahasa c dapat diletakkan pada register menggunakan keyword registerKeyword register memberi petunjuk pada kompilator dengan memberikan variabel yang dapat diletakkan dalam sebuah register. Kompilator akan memilih apakah variabel akan diletakkan ke dalam register atau tidak. Umumnya, kompilatorlah yang melakukan optimisasi dan meletakkan variabel dalam sebuah register.
5 Fakta tentang Keyword Register pada Bahasa C - elfanmauludi
Ilustrasi Keyword Register Bahasa C

satu, Jika operator dan user menggunakan variabel register maka kompilator akan memberikan pesan error atau peringatan bahaya, bergantung kompilator apa yang digunakan pada saat eksekusi program, karena ketika sebuah variabel dinyatakan dalam bentuk register, maka variabel tersebut mungkin akan disimpan dalam sebuah register ketimbang memori dan akses ke alamat register tidak dapat dilakukan atau akan menyebabkan invalid. Coba program berikut ini:

// Pemahaman keyword register

// pada bahasa C

#include<stdio.h>

 

int main()

{

register int i = 10;

 

int* a = &i;

 

printf("%d", *a);

 

getchar();

return 0;

}


dua, Keyword register dapat digunakan dengan variabel pointer. Sederhananya, sebuah register dapat memiliki alamat dari sebuah lokasi memori. Pada program berikut, jika dilakukan suatu kompilasi maka tidak akan ada masalah apapun pada program tersebut:

// Pemahaman keyword

// register pada bahasa C

#include<stdio.h>

 

int main()

{

int i = 10;

 

register int* a = &i;

 

printf("%d", *a);

 

getchar();

return 0;

}


tiga, Register adalah sebuah kelas penyimpanan, dan bahasa C tidak memberikan akses untuk lebih dari satu kelas penyimpanan specifier untuk sebuah variabel. Karena hal tersebut, maka register tidak dapat digunakan dengan tipe static. Untuk lebih memahami, lakukan kompilasi program pada contoh berikut ini:

// Pemahaman keyword

// register pada bahasa C

#include<stdio.h>

 

int main()

{

int i = 10;

 

register static int* a = &i;

 

printf("%d", *a);

 

getchar();

return 0;

}


empat, Register hanya digunakan dengan sebuah block lokal, dan tidak bisa digunakan pada scope global atau diluar dari fungsi main.

// Pemahaman keyword

// register pada bahasa C

#include <stdio.h>

 

// error (global scope)

register int x = 10;

 

int main()

{

// dapat berfungsi 

// dalam sebuah block

register int i = 10;

 

printf("%d\n", i);

printf("%d", x);

 

return 0;

}

Kompilasi error:
prog.c:3:14: error: register name not specified for 'x'
register int x = 10;//error (global scope)
^

lima, Tidak ada batasan pada jumlah dari variabel register pada program bahasa C, namun kompilator mungkin meletakkan beberapa variabel dalam register dan begitupun juga dapat sebaliknya.

Komentar

  1. Apa yang dimaksud dengan keyword register pada bahasa C?

    BalasHapus
    Balasan
    1. Keyword register akan memberikan petunjuk kepada kompilator program bahwa variabel tertentu dapat dimasukkan ke dalam register.

      Register adalah suatu kelas penyimpanan pada bahasa C.
      Bahasa C tidak memberikan ijin atau akses apapun untuk specifier kelas penyimpanan lebih dari satu. Sehingga penggunaan keyword static pada variabel tipe register tidak dapat digunakan.

      Hapus
  2. Apakah register pada bahasa C memang termasuk dalam kata kunci spesial atau keyword?

    BalasHapus
    Balasan
    1. Dalam bahasa C, register dianggap sebagai keyword, type modifier, storage class, dan hint.

      Hapus
  3. Apa yang dimaksud dengan kelas penyimpanan register atau register storage class pada bahasa C?

    BalasHapus
    Balasan
    1. Kelas penyimpanan register digunakan untuk mendefinisikan variabel lokal yang harus disimpan dalam memori register, bukan RAM. Hal ini berarti bahwa variabel memiliki ukuran maksimum yang sama dengan ukuran dari memori register itu sendiri dan tidak dapat menerapkan operator unary '&' didalamnya.

      Hapus
  4. dalam kasus apa keyword register bisa di gunakan?

    BalasHapus
    Balasan
    1. Jaman dulu, pada masa perkembangan program berbasis script, keyword register pada bahasa C digunakan sebagai petunjuk bagi kompilator untuk meletakkan variabel tersebut pada CPU register, ketimbang pada bagian memori.

      Catatan: dimana petunjuk yang dibuat pada program, biasanya lebih dari satu.

      Namun, pada jaman sekarang kompilator modern sudah jauh lebih baik dalam membuat keputusan daripada dilakukan secara manual oleh programmer, bahkan dengan kode program yang sudah bersifat protabel, user sendiri bahkan sudah tidak tahu apa yang menjalankan kode program yang telah dibuatnya tersebut.

      Sehingga, untuk para pengembang atau programmer yang sudah menggunakan kompilator modern tidak perlu terlalu memerhatikan penggunaan keyword register tersebut atau bahkan mengabaikan sama sekali. Karena keyword register tersebut kebanyak dipakai pada pengembangan kode program yang masih menggunakan kompilator tipe lama.

      Sedangkan pada C++, keyword register adalah keyword yang masuk kategori deprecated atau sudah tidak digunakan lagi.

      Hapus
    2. Dalam kasus, dimana komputer atau kompilator yang kamu gunakan untuk membuat kode program adalah keluaran jaman bahelak.

      Hapus
    3. keyword register khusus digunakan dalam pemrograman berbabis embed system.

      Gunanya, adalah untuk memaksa kompilator agar menggunakan unit memori tertentu saja bergantung pada arsitektur mesin yang digunakan.

      Hapus
    4. Register, adalah keyword warisan lama yang sudah cukup banyak diabaikan pada kompilator modern, kecuali terdapat kondisi dimana tidak dapat dilakukan pengambilan alamat dari variabel "register", dan pada kondisi dimana tidak dapat diasumsikan bahwa isi dari variabel register dapat dipertahankan pada seluruh pemanggilan fungsi pada kode program.

      Tujuan awal dari penggunaan keyword register adalah untuk memaksa kompilator untuk menggunakan CPU register internal (jika tersedia) untuk kompilasi program, ketimbang menggunakan memori biasa.

      Hapus

Posting Komentar

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

*Jika terdapat typo, link bermasalah, dan lain sebagainya, pengunjung dapat melaporkan permasalahan tersebut melalui WA: +62-896-2514-6106




~ Ikatlah Ilmu dengan Memostingkannya ~

Referensi Tambahan:

Enkapsulasi pada Java

6 Contoh Program Method Overloading pada Java

2 Jenis Utama Kegiatan Penelitian Berdasarkan Waktunya, Crosssectional Salah Satunya

3 Jenis Utama Looping pada Java

Perbedaan stdio.h dan stdlib.h pada Bahasa C

3 Jenis Utama Teks Komentar pada Bahasa Pemrograman Java