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
118 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!

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