Lompat ke konten Lompat ke sidebar Lompat ke footer

Keyword Restrict Bahasa C Beserta Penjelasannya

Pada bahasa Pemrograman C setelah standar 99, sebuah keyword baru diperkenalkan dengan nama 'restrict'.

Keyword Restrict Bahasa C Beserta Penjelasannya
Keyword Restrict Bahasa C

Sebelum memahami lebih dalam materi tentang Keyword Restrict Bahasa C Beserta Penjelasannya, terlebih dahulu pelajari materi tentang: Linked List Bahasa C Beserta Fungsi dan Penjelasannya [klik], Pointer Near, Far, dan Huge Bahasa C Beserta Penjelasannya [klik], dan Pointer Ke Fungsi Bahasa C Beserta Penjelasannya [klik].

Keyword restrict secara umum digunakan pada deklarasi pointer sebagai sebuah tipe kualifier untuk pointer. Keyword ini tidak menambah fungsionalitas baru pada bahasa C, dimana keyword ini hanya salah satu cara untuk programmer untuk menginformasikan tentang optimisasi yang dapat dilakukan oleh kompilator.

Ketika keyword restrict digunakan bersamaan dengan pointer ptr, maka keyword tersebut akan memberitahukan kompilator bahwa ptr adalah hanya salah satu cara untuk mengakses object yang ditunjuk oleh pointer, dengan kata lain, tidak terdapat jenis pointer lain yang menunjuk ke nilai object yang sama, dimana keyword restrict hanya menentukan bahwa argumen penunjuk tertentu tidak alias yang lain dan kompilator tidak perlu menambahkan pemeriksaan tambahan apa pun.

Baca Juga:

Jika programmer menggunakan keyword restrict dan melanggar kebijakan kondisi yang telah ditetapkan pada keyword tersebut, maka akan menghasilkan kondisi tidak terdefinisi.

Keyword restrict tidak didukung penggunaannya pada C++, melainkan hanya pada Bahasa C saja.

Contoh:

// Program Bahasa C yang

// menggunakan keyword

// restrict.

#include <stdio.h>


// Catatan: tujuan dari

// penggunaan restrict adalah

// untuk memperlihatkan

// sintak, yang tidak mengubah

// nilai output apapun atau

// logika apapun pada program,

// dan merupakan salah satu

// cara untuk programmer

// memberitahu kompilator

// tentang proses optimisasi

// pada program.

void use(int* a, int* b, int* restrict c)

{

*a += *c;

// Karena keyword 'x' adalah

// restrict, maka kompilator

// tidak akan melakukan reload

// nilai dari alamat 'c' pada

// kode assembly. Oleh karena,

// itu kode restrict yang

// dihasilkan akan

// dioptimalkan.

*b += *c;

}


int main(void)

{

int a = 50, b = 60, c = 70;


use(&a, &b, &c);


printf("%d %d %d", a, b, c);

return 0;

}

Output:
120 130 70

6 komentar untuk "Keyword Restrict Bahasa C Beserta Penjelasannya"

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

    BalasHapus
    Balasan
    1. Dalam bahasa pemrograman C, keyword restrict merupakan suatu bentuk kata kunci yang diperkenalkan pada standard C99, yang dapat digunakan dalam proses deklarasi pointer.

      Hapus
    2. Dengan menggunakan restrict keyword pada bahasa C, maka dapat diberikan suatu pointer yang menuju ke kompilator, yang memberikan makna bahwa tidak ada pointer lain yang akan digunakan untuk mengakses object yang sedang ditunjuknya.

      Hapus
  2. Apa perbedaan antara volatile dan restrict pada Bahasa C?

    BalasHapus
    Balasan
    1. Pada dasarnya kedua hal tersebut tidak terlalu berlawanan satu sama lain. Namun, jika digunakan volatile pada program, maka akan diberikan suatu bentuk kendala kepada bagian pengoptimal untuk tidak melakukan proses pengoptimalan akses jauh ke suatu object.

      Hapus
    2. Sedangkan pada restrict diberikan suatu bentuk jaminan kepada pengoptimal tentang proses aliasing, sehingga dalam arti yang lebih luar, baik untuk volatile ataupun restrict, keduanya akan bertindak secara berlawanan arah dalam hel kebebasan proses pengoptimalan program.

      Hapus

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 -