Rumah > pembangunan bahagian belakang > C++ > Mengapakah Pemula Ditetapkan Dikecualikan daripada C 11?

Mengapakah Pemula Ditetapkan Dikecualikan daripada C 11?

Barbara Streisand
Lepaskan: 2024-12-28 10:52:14
asal
196 orang telah melayarinya

Why Were Designated Initializers Excluded from C  11?

Pemula Ditetapkan dalam C 11: Rasional Pengecualian

Walaupun C99 membenarkan penggunaan senarai pemula yang ditetapkan, seperti dalam coretan kod yang disediakan , C 11 melarang ciri ini. Keputusan oleh jawatankuasa piawai C 11 ini menimbulkan persoalan mengapa ciri mudah seperti itu dikecualikan.

C.1.7[diff.decl].4: Sekatan dalam C :

Memperkenalkan pemula yang ditetapkan dalam C akan menimbulkan beberapa cabaran:

  • Perintah Penilaian Tidak Tentu: Dalam C99, susunan penilaian untuk pemula yang ditetapkan tidak ditentukan, yang membawa kepada potensi tingkah laku yang tidak ditentukan jika ahli yang dimulakan berinteraksi. Sebaliknya, C menguatkuasakan perintah penilaian yang ketat untuk senarai pemula, menghalang isu sedemikian.
  • Gelagat Tidak Konsisten dengan C99: Membenarkan pemula yang ditetapkan dalam C akan memerlukan pemecahan keserasian dengan pelaksanaan C99 sedia ada, yang menguatkuasakan perintah penilaian tertentu. Ini akan memperkenalkan kebimbangan kemudahalihan yang berpotensi.
  • Penentukan Bersarang dan Permulaan Tatasusunan: C99 juga membenarkan penentu bersarang dan permulaan yang ditetapkan tatasusunan, yang akan menambahkan lagi kerumitan pada bahasa C dan menimbulkan kebimbangan tentang tingkah laku yang tidak konsisten.

Kesimpulan:

Jawatankuasa standard C 11 mempertimbangkan dengan teliti had teknikal ini, serta potensi isu keserasian dan tingkah laku yang tidak konsisten, apabila memilih untuk mengecualikan senarai pemula yang ditetapkan. Sebaliknya, C menyediakan susunan penilaian yang ketat untuk senarai pemula bagi memastikan gelagat yang boleh diramal dan mengekalkan keserasian dengan peraturan sedia ada.

Atas ialah kandungan terperinci Mengapakah Pemula Ditetapkan Dikecualikan daripada C 11?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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