Rumah >pembangunan bahagian belakang >C++ >Adakah Pembolehubah thread_local Statik Tersirat dalam Skop Blok?

Adakah Pembolehubah thread_local Statik Tersirat dalam Skop Blok?

Susan Sarandon
Susan Sarandonasal
2024-11-02 03:35:02483semak imbas

Are thread_local Variables Implicitly Static in Block Scope?

Adakah Pembolehubah Diisytiharkan dengan thread_local Secara Automatik Statik?

Segmen kod berikut kelihatan sama sepintas lalu:

<code class="cpp">void f() {
    thread_local vector<int> V;
    // ...
}

void f() {
    static thread_local vector<int> V;
    // ...
}</code>

Walau bagaimanapun, Piawaian C mendedahkan perbezaan yang ketara. Apabila mentakrifkan pembolehubah thread_local dengan skop blok, penentu kelas storan statik tersirat jika tidak dinyatakan secara eksplisit. Ini bermakna bahawa segmen kod pertama adalah bersamaan dengan yang kedua.

Walaupun takrifan mereka serupa, pembolehubah statik dan thread_local berbeza dengan ketara. Pembolehubah dengan tempoh storan statik dikaitkan dengan keseluruhan program, manakala pembolehubah thread_local dikaitkan dengan urutan individu. Setiap urutan mempunyai objek atau rujukan tersendiri yang dikaitkan dengan pembolehubah thread_local.

Atas ialah kandungan terperinci Adakah Pembolehubah thread_local Statik Tersirat dalam Skop Blok?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn