static adalah kata kunci dalam bahasa pemrograman C. Ini bisa digunakan dengan variabel dan fungsi.
Secara default, variabel adalah lokal terhadap cakupan di mana mereka didefinisikan. Variabel bisa dideklarasikan sebagai static untuk meningkatkan cakupan mereka hingga file yang berisi mereka. Akibatnya, variabel-variabel ini bisa diakses di mana saja di dalam file.
Pertimbangkan skenario berikut - di mana kita ingin menghitung pelari yang berpartisipasi dalam sebuah lomba:
#include <stdio.h>
int runner() {
int count = 0;
count++;
return count;
}
int main() {
printf("%d ", runner());
printf("%d ", runner());
return 0;
}
Kita akan melihat bahwa count tidak diperbarui karena itu dihapus dari memori segera setelah fungsi selesai. Namun, jika static digunakan, kita mendapatkan hasil yang diinginkan:
#include <stdio.h>
int runner() {
static int count = 0;
count++;
return count;
}
int main() {
printf("%d ", runner());
printf("%d ", runner());
return 0;
}
Secara default, fungsi-fungsi adalah global dalam C. Jika kita deklarasikan fungsi dengan static, cakupan fungsi tersebut dikurangi ke file yang berisi fungsi tersebut.
Sintaksnya seperti ini:
static void fun(void) {
printf("Saya adalah fungsi static.");
}
Sementara variabel static memiliki cakupan di file yang berisi mereka sehingga hanya bisa diakses di dalam file tertentu, variabel global bisa diakses di luar file juga.
| Konteks | Deskripsi | Contoh |
|---|---|---|
| Variabel lokal | Variabel yang mempertahankan nilai antar pemanggilan fungsi | static int count = 0; |
| Variabel global | Variabel yang hanya bisa diakses dalam file yang sama | static int global_var; |
| Fungsi | Fungsi yang hanya bisa diakses dalam file yang sama | static void myfunc(); |
Dalam latihan ini, cobalah untuk menemukan jumlah beberapa angka dengan menggunakan kata kunci static. Jangan melewatkan variabel apapun yang mewakili total berjalan ke fungsi sum().
Requirements:
- Gunakan variabel static dalam fungsi sum
- Fungsi harus mengingat total sebelumnya
- Jangan lewatkan variabel total sebagai parameter
Expected Output:
55
100
150
Try writing your solution in the code editor below!
Current Lesson: Static
Learning Objectives:
- Memahami konsep variabel dan fungsi static dalam bahasa C
- Belajar menggunakan kata kunci static dalam berbagai konteks
- Mengenal perbedaan antara static dan variabel global
- Memahami aplikasi static dalam program
Prerequisites:
- Pemahaman tentang variabel dan fungsi
- Pemahaman dasar tentang scope variabel