0Pricing
C Academy · Pelajaran

Konstanta #define

Gunakan konstanta praprosesor.

Konstanta #define adalah pelajaran C Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C Academy mencakup 4 pelajaran total.

Fungsi #define

#define adalah direktif praprosesor yang membuat makro: nama yang diganti praprosesor dengan teks sebelum kompilasi.

Makro ini biasanya digunakan untuk memberikan nama yang mudah dibaca pada nilai tetap, seperti ukuran penyangga atau batas.

#define MAX_LEN 256

Penggantian Teks

Makro adalah penggantian teks murni. Di mana pun MAX_LEN muncul, praprosesor menuliskan 256 sebagai gantinya.

Tidak ada tipe maupun memori; proses ini terjadi bahkan sebelum kompilator melihat kode.

#include <stdio.h>
#define MAX_LEN 256
int main(void) {
    printf("%d\n", MAX_LEN);
    return 0;
}

Tanpa Titik Koma

Kesalahan yang umum adalah mengakhiri #define dengan titik koma.

Titik koma menjadi bagian dari teks pengganti dan dapat menyebabkan kesalahan yang membingungkan. Jangan menambahkannya.

#define PI 3.14159     /* correct */
#define BAD 10;        /* wrong: semicolon is substituted too */

Mendefinisikan Konstanta Float

Makro dapat digunakan untuk literal apa pun, termasuk nilai titik mengambang.

Di sini PI digantikan ke dalam rumus luas pada setiap penggunaan.

#include <stdio.h>
#define PI 3.14159
int main(void) {
    double r = 2.0;
    printf("%.2f\n", PI * r * r);
    return 0;
}

Makro untuk Ukuran Larik

Makro sering digunakan untuk menentukan ukuran larik karena nilainya harus diketahui saat kompilasi.

Menggunakan nama membuat ukuran tersimpan di satu tempat dan mudah diubah.

#include <stdio.h>
#define SIZE 5
int main(void) {
    int data[SIZE] = {1, 2, 3, 4, 5};
    printf("%d\n", data[SIZE - 1]);
    return 0;
}

Selalu Gunakan Tanda Kurung pada Ekspresi

Jika makro diperluas menjadi sebuah ekspresi, apit ekspresi tersebut dengan tanda kurung.

Tanpa tanda kurung, prioritas operator dapat mengubah makna saat makro digunakan di dalam ekspresi yang lebih besar.

#define WIDTH (4 + 2)   /* good */
#define BADW 4 + 2       /* risky: 10 * BADW becomes 10*4+2 */

Alasan Tanda Kurung Penting

Program ini menunjukkan perbedaannya. Dengan tanda kurung, WIDTH dikalikan sebagai satu kesatuan; tanpa tanda kurung, hanya sebagian yang dikalikan.

Versi yang aman mencetak 60, sedangkan perluasan yang tidak aman akan menghasilkan perhitungan yang berbeda.

#include <stdio.h>
#define WIDTH (4 + 2)
int main(void) {
    printf("%d\n", 10 * WIDTH);
    return 0;
}

Makro String

Makro juga dapat mewakili literal string, yang berguna untuk pesan tetap atau nama versi.

Teks digantikan persis seperti aslinya, termasuk tanda kutip.

#include <stdio.h>
#define APP_NAME "CoddyKit"
int main(void) {
    printf("Welcome to %s\n", APP_NAME);
    return 0;
}

#define vs const

Makro tidak memiliki tipe maupun alamat; variabel const memiliki keduanya dan mengikuti cakupan.

Pilih const jika Anda menginginkan keamanan tipe dan visibilitas saat men-debug. Gunakan #define untuk konstanta waktu kompilasi seperti ukuran larik.

#define M_SIZE 10
const int c_size = 10;

Menghapus Definisi dan Penjaga

Anda dapat menghapus makro dengan #undef. Makro juga digunakan untuk penjaga header yang mencegah penyertaan ganda.

Ini menunjukkan pola penjaga klasik yang digunakan di bagian atas berkas header.

#ifndef CONFIG_H
#define CONFIG_H
/* header contents here */
#endif

Penamaan Konvensional

Nama makro ditulis dalam UPPER_CASE berdasarkan konvensi yang telah lama digunakan.

Hal ini menandainya secara visual sebagai konstanta praprosesor dan membantu Anda menghindari benturan dengan nama variabel biasa.

#include <stdio.h>
#define BUFFER_SIZE 1024
int main(void) {
    printf("%d\n", BUFFER_SIZE);
    return 0;
}

Pemeriksaan Singkat

Uji pemahaman Anda tentang makro.

Ringkasan

#define membuat makro yang digantikan praprosesor sebagai teks, tanpa tipe, tanpa titik koma, dan tanpa memori.

Gunakan tanda kurung pada ekspresi, dan pilih const untuk nilai yang aman secara tipe, sementara makro digunakan untuk kebutuhan waktu kompilasi seperti ukuran larik dan penjaga header.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Konstanta #define” gratis?

Ya — teks lengkap “Konstanta #define” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C Academy, upgrade ke CoddyKit PRO. Kursus C Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Konstanta #define”?

Gunakan konstanta praprosesor. Kamu berlatih C Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai C Academy?

Tidak diperlukan pengalaman sebelumnya. C Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Konstanta #define” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran C Academy ini?

Ya. Setiap pelajaran C Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Mendefinisikan Enum
  2. Nilai dan Rentang Enum
  3. Variabel const
  4. Konstanta #define
← Kembali ke C Academy