0Pricing
C Academy · Pelajaran

extern dan Global

Berbagi antarfile.

extern dan Global adalah pelajaran C Academy gratis di CoddyKit. Ini adalah pelajaran 3 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.

Variabel Global

Variabel yang dideklarasikan di luar fungsi apa pun memiliki lingkup berkas dan hidup selama seluruh program. Variabel ini disebut variabel global.

#include <stdio.h>
int counter = 0;
void bump(void) {
    counter++;
}
int main(void) {
    bump();
    bump();
    printf("counter = %d\n", counter);
    return 0;
}

Variabel Global Bersama

Setiap fungsi dalam berkas dapat membaca dan menulis variabel global. Hal ini membuatnya praktis, tetapi juga mudah disalahgunakan.

#include <stdio.h>
int score = 100;
void penalty(void) { score -= 25; }
void bonus(void) { score += 10; }
int main(void) {
    penalty();
    bonus();
    printf("score = %d\n", score);
    return 0;
}

Inisialisasi Nol Secara Bawaan

Variabel global tanpa penginisialisasi secara otomatis dimulai dari 0.

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

Kata Kunci Eksternal

extern mendeklarasikan variabel global yang didefinisikan di tempat lain. Kata ini memberi tahu kompiler bahwa variabel tersebut ada tanpa mengalokasikan penyimpanannya.

#include <stdio.h>
int shared = 5;
extern int shared;
int main(void) {
    printf("shared = %d\n", shared);
    return 0;
}

Deklarasi vs Definisi

Definisi mengalokasikan penyimpanan. Deklarasi hanya memberi nama pada sesuatu. Deklarasi extern tidak mengalokasikan penyimpanan.

#include <stdio.h>
int value = 42;
int main(void) {
    extern int value;
    printf("value = %d\n", value);
    return 0;
}

Berbagi Antarberkas

Dalam proyek yang terdiri dari beberapa berkas, satu berkas .c mendefinisikan variabel global dan berkas lainnya menggunakan extern di header untuk mengaksesnya.

#include <stdio.h>
extern int globalCount;
int globalCount = 3;
int main(void) {
    printf("globalCount = %d\n", globalCount);
    return 0;
}

Fungsi Juga Dapat Bersifat Eksternal

Fungsi secara bawaan memiliki keterkaitan eksternal, sehingga prototipe pada dasarnya merupakan deklarasi extern untuk fungsi tersebut.

#include <stdio.h>
extern void hello(void);
void hello(void) {
    printf("Hello from extern\n");
}
int main(void) {
    hello();
    return 0;
}

Masa Hidup Variabel Global

Variabel global ada sejak program dimulai hingga selesai, sehingga nilainya bertahan sepanjang semua pemanggilan fungsi.

#include <stdio.h>
int visits = 0;
void page(void) { visits++; }
int main(void) {
    page();
    page();
    page();
    printf("visits = %d\n", visits);
    return 0;
}

Risiko Variabel Global

Karena kode apa pun dapat mengubah variabel global, kesalahan menjadi sulit dilacak. Jika memungkinkan, lebih baik teruskan nilai sebagai parameter.

#include <stdio.h>
int config = 1;
int compute(int input) {
    return input * config;
}
int main(void) {
    printf("%d\n", compute(8));
    return 0;
}

Variabel Global Hanya-Baca

Gabungkan const dengan variabel global untuk membuat konstanta bersama yang tidak dapat diubah siapa pun.

#include <stdio.h>
const int MAX_USERS = 50;
int main(void) {
    printf("MAX_USERS = %d\n", MAX_USERS);
    return 0;
}

Pola Praktis

Nilai konfigurasi global yang dibaca oleh beberapa fungsi merupakan penggunaan yang umum dan dapat diterima.

#include <stdio.h>
int multiplier = 3;
int scale(int x) { return x * multiplier; }
int main(void) {
    printf("%d\n", scale(4));
    printf("%d\n", scale(7));
    return 0;
}

Pemeriksaan Singkat

Ujilah pemahaman Anda tentang extern dan variabel global.

Ringkasan: <code>extern</code> dan Global

Anda telah mempelajari variabel global dan keterkaitan eksternal.

  • Variabel global memiliki lingkup berkas dan masa hidup selama program
  • Variabel tersebut secara bawaan bernilai 0 dan digunakan bersama oleh semua fungsi
  • extern mendeklarasikan variabel global yang didefinisikan di tempat lain
  • Definisi mengalokasikan penyimpanan, sedangkan deklarasi hanya memberi nama
  • Gunakan variabel global seperlunya untuk menghindari keterkaitan tersembunyi

Pertanyaan yang Sering Diajukan

Apakah pelajaran “extern dan Global” gratis?

Ya — teks lengkap “extern dan Global” 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 “extern dan Global”?

Berbagi antarfile. 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 3 dari 4.

Berapa lama pelajaran “extern dan Global” 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. auto dan Scope Lokal
  2. Variabel static
  3. extern dan Global
  4. register dan const
← Kembali ke C Academy