Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bilakah Anda Akan Menggunakan Parameter Bukan Jenis dalam Templat C?

Bilakah Anda Akan Menggunakan Parameter Bukan Jenis dalam Templat C?

Susan Sarandon
Susan Sarandonasal
2024-10-24 14:26:30893semak imbas

When Would You Use Non-Type Parameters in C   Templates?

Templat dengan Parameter Bukan Jenis

Parameter templat biasanya digunakan untuk menentukan keperluan jenis, tetapi anda juga boleh mengisytiharkan templat dengan bukan- jenis parameter, seperti integer yang tidak ditandatangani.

Syntax and Meaning

Sintaks untuk templat dengan parameter bukan jenis ialah:

template <unsigned int N>

di mana N mewakili parameter bukan jenis. Parameter ini kemudiannya boleh digunakan dalam templat sebagai pemalar masa kompilasi jenis unsigned int.

Kes Penggunaan

Parameter bukan jenis berguna dalam pelbagai senario:

  • Saiz Tatasusunan: N boleh digunakan untuk menentukan saiz tatasusunan atau struktur data bersaiz tetap lain.
  • Nilai Malar: Ia boleh berfungsi sebagai ungkapan malar, memberikan nilai tetap yang tidak berubah pada masa jalan.
  • Sempadan Gelung: N boleh digunakan untuk menentukan sempadan gelung atau lelaran.
  • Kompilasi Bersyarat: Laluan kod yang berbeza boleh dipilih berdasarkan nilai N.

Parameter Jenis lwn Parameter Bukan Jenis

Adalah penting untuk mengambil perhatian perbezaan antara parameter jenis dan parameter bukan jenis. Parameter jenis mewakili jenis (cth., kelas T atau templat T), manakala parameter bukan jenis mewakili pemalar (cth., int N yang tidak ditandatangani).

Contoh

Pertimbangkan templat berikut:

template &lt;unsigned int N&gt;
struct Vector {
    unsigned char bytes[N];
};

Di sini, N ialah parameter bukan jenis yang menentukan saiz tatasusunan bait.

<code class="cpp">Vector<3> v; // Vector with 3 bytes</code>

Nilai Lalai

Ada kemungkinan untuk menentukan nilai lalai untuk parameter bukan jenis, membenarkan templat digunakan tanpa memberikan parameter secara eksplisit. Contohnya:

<code class="cpp">template <unsigned int SIZE = 3>
struct Vector {
    unsigned char buffer[SIZE];
};</code>

Templat di atas lalai SAIZ kepada 3, jadi yang berikut adalah sah:

<code class="cpp">Vector v; // Equivalent to Vector<3></code>

Kesimpulan

Bukan- parameter jenis dalam templat menawarkan fleksibiliti dan membenarkan penggunaan semula kod dengan nilai tetap atau tetap. Ia mendayakan pelbagai kes penggunaan, daripada saiz tatasusunan kepada penyusunan bersyarat.

Atas ialah kandungan terperinci Bilakah Anda Akan Menggunakan Parameter Bukan Jenis dalam Templat C?. 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