Rumah > pembangunan bahagian belakang > C++ > Bolehkah C 17 Mengisytiharkan Pembolehubah Di Dalam Keadaan \'jika\'?

Bolehkah C 17 Mengisytiharkan Pembolehubah Di Dalam Keadaan \'jika\'?

Linda Hamilton
Lepaskan: 2024-12-02 09:15:13
asal
741 orang telah melayarinya

Can C  17 Declare Variables Inside an 'if' Condition?

Pengisytiharan Pembolehubah C dalam Ungkapan 'if': Diselesaikan dalam C 17

Dalam C , mengisytiharkan pembolehubah dalam ungkapan keadaan pernyataan 'if' telah lama wujud had. Setakat C 17, sekatan ini telah ditarik balik.

Sebelum ini, pembolehubah yang diisytiharkan dalam keadaan 'jika' telah diskop kepada pencawang pernyataan 'jika'. Melampirkan pengisytiharan dalam kurungan adalah dilarang, dan hanya satu pengisytiharan sahaja dibenarkan bagi setiap syarat. Had ini menyusahkan dalam kes di mana permulaan pembolehubah dalam keadaan diperlukan.

Pertimbangkan coretan kod:

bool a = false, b = true;

if (bool x = a || b) // Cannot declare x within the condition
{

}
Salin selepas log masuk

Untuk memulakan x kepada palsu dalam skop 'jika', kurungan diperlukan disebabkan keutamaan pengendali. Walau bagaimanapun, kurungan tidak dibenarkan, memerlukan x diisytiharkan di luar 'jika'. Ini membocorkan pengisytiharan kepada skop yang lebih luas.

Dalam C 17, kekangan ini telah dilonggarkan. Kod berikut kini sah:

if (int a = Func1(), b = Func2(); a && b)
{
    // Do stuff with a and b.
}
Salin selepas log masuk

Perhatikan penggunaan ";" untuk memisahkan pengisytiharan daripada syarat. Ini membolehkan berbilang pengisytiharan dan penggunaan kurungan jika sesuai.

Oleh itu, perkara yang sebelum ini tidak akur kini boleh dilakukan dengan pengenalan C 17.

Atas ialah kandungan terperinci Bolehkah C 17 Mengisytiharkan Pembolehubah Di Dalam Keadaan \'jika\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan