Bolehkah kita menggunakan statik dan tidak menentu bersama-sama dalam C?
Bolehkah kita menggunakan statik dan tidak menentu bersama-sama dalam C?

Video: Bolehkah kita menggunakan statik dan tidak menentu bersama-sama dalam C?

Video: Bolehkah kita menggunakan statik dan tidak menentu bersama-sama dalam C?
Video: Cara Membuat Titik Dua Dengan Lurus dan Rapi 2024, November
Anonim

Statik pembolehubah mengekalkan nilainya antara panggilan fungsi. Tidak menentu pembolehubah (yang bukan bertentangan dengan statik ) ialah digunakan apabila pembolehubah adalah digunakan kedua-duanya dalam ISR (rutin perkhidmatan gangguan) dan di luarnya. Tidak menentu memberitahu pengkompil untuk sentiasa memuatkan avariable daripada RAM dan bukannya menyimpannya dalam CPUregister.

Begitu juga seseorang mungkin bertanya, bolehkah kita menggunakan statik dan tidak menentu bersama-sama?

Walaupun awak akses a statik nilai melalui berbilang utas, setiap utas boleh mempunyai salinan cache tempatannya! Untuk mengelakkan ini awak boleh mengisytiharkan pembolehubah sebagai tidak menentu statik dan ini kehendak paksa benang untuk dibaca setiap kali nilai global. Walau bagaimanapun, tidak menentu bukan sebagai pengganti penyegerakan yang betul!

Begitu juga, mengapa kita menggunakan volatile dalam C? C tidak menentu kata kunci ialah kelayakan yang digunakan pada pembolehubah apabila ia diisytiharkan. Ia memberitahu pengkompil bahawa nilai pembolehubah boleh berubah pada bila-bila masa--tanpa sebarang tindakan diambil oleh kod yang ditemui oleh pengkompil berdekatan. Implikasi ini agak serius.

Memandangkan ini, apakah maksud meruap statik dalam C?

statik merujuk kepada skop pembolehubah. Jika pembolehubah adalah global, ini bermakna skop adalah terhad kepada fail sumber yang diisytiharkan masuk. Jika pembolehubah adalah setempat untuk berfungsi, maka ini bermakna memori yang digunakan untuk menahan pembolehubah ini berada dalam memori yang diperuntukkan secara statik aplikasi.

Bolehkah kita menggunakan const dengan volatile dalam C?

ya. Pembolehubah boleh diisytiharkan sebagai kedua-duanya tidak menentu dan tetap dalam C . Const pengubah suai tidak membenarkan menukar nilai pembolehubah oleh atur cara dalaman. Tetapi, ia tidak bermakna nilai itu const pembolehubah tidak boleh diubah oleh kod luaran.

Disyorkan: