[ HTML ] [ Java ] [ Bahasa C ]


Minggu, Mei 02, 2021

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 register. Keyword 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.

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.

6 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

Respon komentar 7 x 24 jam, so please be patient :D