[ HTML ] [ Java ] [ Bahasa C ]


Minggu, Mei 02, 2021

Perbedaan Cara Pendeklarasikan Variabel Sebagai Konstanta pada Bahasa C dan C++

Terdapat banyak cara untuk membuat variabel sebagai konstanta
satu, Menggunakan keyword const: keyword const menentukan bahwa sebuah variabel atau object nilai adalah konstanta dan tidak dapat dimodifikasi nilainya pada saat waktu kompilasi.

// Demonstrasi konstanta

// specifier pada bahasa C

#include <stdio.h>

 

int main()

{

const int num = 1;

 

// Modifikasi nilai variabel num 

num = 5

return 0;

}

Akan menghasilkan error seperti berikut:
error: assigment of read-only variable 'num'

dua, Menggunakan keyword enum: enumeration atau enum adalah tipe data yang didefinisikan user pada bahasa C dan C++. Umumnya digunakan untuk penamaan pada konstanta integral yang membuat program mudah untuk dibaca dan dirawat.

// In C and C++ internally the default
// type of 'var' is int
enum VARS { var = 42 };

// In C++ 11 (can have any integral type):
enum : type { var = 42; }

// where mytype = int, char, long etc.
// but it can't be float, double or
// user defined data type.

catatan: tipe data enum terbatas hanya pada contoh sebelumnya.

tiga, Menggunakan keyword constexpr: penggunaan constexpr hanya digunakan pada C++ dan tidak digunakan pada bahasa C, dimana penggunaannya untuk mendeklarasikan variabel sebagai sebuah konstanta. Tetapi akan gagal untuk dikompilasi jika inisialisasinya bukan sebuah ekspresi konstanta.

#include <iostream>

 

int main()

{

int var = 5;

constexpr int k = var;

std::cout << k;

return 0;

}

Program tersebut akan menghasilkan error.
error: the value of 'var' is not usable in a constant expression

Karena variabel 'var' bukanlah ekspresi konstanta. Karenanya untuk dapat membuatnya sebagai konstanta, maka variabel 'var' harus dideklarasikan dengan keyword const.

empat, Menggunakan makro: Penggunaan makro juga dapat dipakai untuk mendefinisikan konstanta, tetapi terdapat sedikit celah, dimana makro hanya berfungsi dalam penanganan preprosesor yang tidak dilakukan oleh kompilator. Karenanya tidak direkomendasikan penggunaan makro untuk membawa pemeriksaan tipe informasi dan bahkan cenderung akan mengalami error.

C++

// Demonstrasi permasalah-

// an pada 'Macros' C++

#include <iostream>

using namespace std;

 

#define var 5

int main() {

printf("%d ", var);

 

#ifdef var

#undef var

 

// pendefinisian ulang variabel

// var dengan nilai 10

#define var 10

#endif

 

printf("%d", var);

return 0;

}


C

// Demonstrasi masalah penggu-

// naan 'macros ' pada bahasa C

#include <stdio.h>

#define var 5

 

int main()

{

printf("%d ", var);

 

#ifdef var

#undef var

 

// pendefinisian ulang nilai

// var dengan nilai 10

#define var 10

#endif

 

printf("%d", var);

return 0;

}

Kedua program tersebut akan menghasilkan output:
5 10

Catatan: preprocessor dan enum hanya bekerja sebagai konstanta literal dan konstanta integer dan hanya mendefinisikan nama simbol dari konstanta. Namun jika membutuhkan variabel konstanta dengan alamat memori spesifik maka dapat menggunakan 'const' atau 'constexpr' sesuai dengan yang dipersyaratkan.

6 komentar:

  1. Apa yang dimaksud dengan konstanta apakah sama dengan keyword conts?

    BalasHapus
    Balasan
    1. Keyword const atau konstanta digunakan untuk menetapkan apakah nilai variabel yang disimpan adalah konstan, dan selanjutnya informasi tersebut diberitahukan kepada kompilator untuk mencegah supaya nilai tersebut tidak dapat dilakukan perubahan sama sekali.

      Pada c++ nilai konstanta secara default ditujukan untuk internal linkagea atau tautan internal, yang memungkinkan nilai untuk muncul pada file header.

      Keyword const juga dapat digunakan pada saat pendeklarasian pointer pada bahasa C.

      Hapus
    2. Penggunaan const adalah untuk menunjukkan bahwa nilai variabel tersebut tidak dapat diubah atau dimodifikasi sama sekali,

      Hapus
  2. Apa yang dimaksud dengan enum pada bahasa C?

    BalasHapus
    Balasan
    1. Pencacahan atau enumeration adalah tipe data yang digunakan untuk menetapkan nama ke konstanta integral yang memuat program mudah untuk dibaca dan dilakukan perawatan. "enum" merupakan keyword yang digunakan untuk mendeklarasikan suatu unumerasi pada bahasa pemrograman. Keyword "enum" juga dapat digunakan untuk mendefinisikan variabel jenis enum.

      Hapus
    2. aku kira enum itu kelanjutannya enum, tujuh, delapan, hahahahaha

      Hapus

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