Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Melaksanakan Blok Kod Statik dalam C Tanpa Menggunakan Kelas?

Bagaimana untuk Melaksanakan Blok Kod Statik dalam C Tanpa Menggunakan Kelas?

DDD
DDDasal
2024-10-26 07:59:03276semak imbas

How to Implement Static Code Blocks in C   Without Using Classes?

Blok Kod Statik dalam C : Pendekatan Alternatif Di Luar Kelas

Walaupun C tidak menyokong blok kod statik secara langsung dalam kelas, penyelesaiannya adalah dengan menggunakan blok kod statik di luar kelas. Pendekatan ini membenarkan pelaksanaan kod semasa pemuatan kelas atau apabila DLL yang mengandungi dimuatkan.

Pilihan 1: Permulaan Semasa Pemuatan Proses/Pemuatan DLL

Untuk mencapainya, anda boleh mencipta statik blok pada skop unit terjemahan, biasanya dalam fail pelaksanaan untuk kelas anda. Contohnya:

<code class="cpp">static_block {
    // Here you can perform initialization code
    std::cout << "Hello static block world!\n";
}</code>

Dengan menggunakan static_block seperti yang ditunjukkan di atas, kod yang disertakan akan dijalankan sebelum fungsi main().

Pilihan 2: Permulaan Semasa Instantiation Kelas Pertama

Untuk pilihan ini, pertimbangkan struktur kelas berikut:

<code class="cpp">class StaticInitialized {
public:
    static bool staticsInitialized = false;
    virtual void initializeStatics();

    StaticInitialized() {
        if (!staticsInitialized) {
            initializeStatics();
            staticsInitialized = true;
        }
    }
};

class MyClass : private StaticInitialized {
public:
    static int field1;
    static int field2;

protected:
    void initializeStatics() {
        // Here you can perform initialization code specific to MyClass
        field1 = 42;
        field2 = 100;
    }
};</code>

Dalam contoh ini, fungsi initializeStatics() adalah maya dan boleh ditindih dalam kelas terbitan untuk logik permulaan tertentu. Bendera StaticsInitialized memastikan bahawa kod permulaan hanya dijalankan sekali sebelum sebarang tika kelas dibuat.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Blok Kod Statik dalam C Tanpa Menggunakan Kelas?. 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