Mari langsung kita mulaikan saja.
Pertama adalah tentang variabel global. Jenis variabel ini sangat poluler bagi programer muda/awal/newbe. Karena sifatnya yang dapat diakses dari mana saja dan kapan saja. Pendeklarasian variabel global diletakkan pada file .c sementara pada file .h adalah extern nya. Kata extern akan menjadi penanda bahwa variabel global tersebut sudah pernah di deklarasikan, dalam hal ini di file .c. Tanpa penambahan extern, variabel global ini tidak dapat digunakan pada file yang berbeda, atau dapat namun dengan status warning setelah compile. Pesan sponsornya adalahGlobal Variable Are EvilMengapa disebut demikian, gambar dibawah ini akan menjelaskan beberapa hal.
Atau lebih lengkatnya dapat berkunjung ke link ini
Selanjutnya tentang variabel static. Jenis variabel ini dapat ditemukan pada kode kode orang yang pro atau yang menuju pro. Mengapa, karen orang jenis ini sudah mulai merencanakan variabel apa saja yang dapat diakses global dan apa saja yang hanya dapat diakses atau digunakan pada lingkup file / proses tertentu. Mungkin variabel ini dapat dikatakan juga dengan variabel global terbatas. Mengapa disebut terbatas, karena variable ini hanya dapat dilakukan dalam satu file tersebut. Jika kita perlakukan seperti variable global, dengan menambahkan extern di file .h. yang akan terjadi malah compliler akan menulaknya alias memberikan pesan error.
variabel static kurang evil dibanding variabel global.Terakhir adalah variabel lokal. Variabel ini sering dideklarasi dengan satu huruf dan huruf yang paling sering digunakan adalah i, setelah itu j dan k. Mengapa demikian, karena hampir semua programer diawal awal berkenalan dengan bahasa pemrograman akan menggunakan variabel ini dalam proses perulangan. Karena proses ini perlu variabel sebagai hal yang akan di incriment atau decriment. Maka si i menjadi pilihan untuk digunakan, berhubung pada beberapa buku dan text book juga menggunakan si i. Variabel lokal, hanya dapat digunakan dalam fungsi dimana variabel tersebut di deklaraskan. Tidak menggunakan kata static sebelum tipe data dan extern dengan harapan dapat di akses oleh fungsi yang lain (hehehe kalimat terakhir ini, hanya candaan saja).