Dalam C, Anda akan sering / kadang-kadang (karena gaya) menggunakan staticvariabel lingkup file di mana Anda akan menggunakan variabel anggota kelas pribadi di C ++. Saat melakukan penskalaan ke program multithreaded, cukup menambahkan thread_localC11 atau ekstensi yang didukung lama __threadcocok. Saya tahu Anda bisa melakukan hal yang persis sama dalam C sebagai C ++ dengan meletakkan segala sesuatu di dalam structdan membuat satu set fungsi yang mengambil pointer ke itu structsebagai argumen pertama. Beberapa perpustakaan melakukan ini secara ekstensif. Tapi gaya pribadi saya adalah menjaga structsekecil mungkin, jika perlu.
Saya sering membaca atau mendengar beberapa orang yang memperdebatkan variabel 'global' sangat buruk. Saya mengikuti alasan mereka, dan sebagian besar argumen mereka tampaknya terkait dengan externvariabel global dalam istilah C. Apa yang mereka katakan tentu benar. Saya kadang-kadang menggunakan 1 atau 2 externvariabel yang dideklarasikan di seluruh program ketika akan menyederhanakan banyak hal dan ketika mudah untuk melacaknya, tetapi melangkah lebih jauh akan dengan mudah membuat program tidak dapat diprediksi.
Bagaimana dengan staticvariabel? Apakah mereka masih memiliki masalah yang sama dengan variabel global 'nyata'? Mungkin saya bahkan tidak perlu mengajukan pertanyaan ini dan melanjutkan jika saya pikir apa yang saya lakukan adalah benar, tetapi hari ini saya melihat jenis posting 'variabel global yang BURUK' lainnya, dan akhirnya datang ke sini berpikir mungkin ini adalah hak tempat untuk pertanyaan semacam itu. Apa yang kamu pikirkan?
Pertanyaan ini bukan merupakan duplikat dari ini karena pertanyaan ini menanyakan tentang externdan staticvariabel non-lokal sedangkan pertanyaan lainnya adalah tentang variabel file-lingkup dan blok-lingkup static.