Adakah Kod \'Bahasa Pengaturcaraan C\' Edisi Keempat Menunjukkan Gelagat Yang Ditakrifkan dengan Baik?

Barbara Streisand
Lepaskan: 2024-10-23 22:14:29
asal
182 orang telah melayarinya

Does Fourth Edition

Adakah Kod daripada "The C Programming Language" Edisi Ke-4 Mempunyai Gelagat Yang Ditakrifkan dengan Baik?

Kod yang dipersoalkan mempamerkan tingkah laku yang tidak ditentukan, walaupun tidak menggunakan tingkah laku yang tidak ditentukan. Ini disebabkan oleh susunan penilaian sub-ungkapan yang tidak ditentukan, terutamanya mengenai panggilan untuk s.replace().

Prinsip Penilaian Sub-Ungkapan Tidak Ditentukan

Fungsi hujah mempunyai susunan penilaian yang tidak ditentukan, bermakna susunan penilaian hujah fungsi individu tidak boleh diandaikan. Dalam kes ini, hujah untuk s.find() tidak dijamin akan dinilai sebelum atau selepas s.replace().

Impak Susunan Penilaian

Bergantung pada susunan penilaian, keputusan s.find() boleh diubah oleh kesan sampingan s.replace(). Ini kerana s.replace() mengubah suai panjang rentetan, menjejaskan hasil panggilan s.find() berikutnya.

Perbezaan Penilaian Sebenar

Dalam ujian disediakan, dentang menilai s.find("genap") sebelum s.replace(0, 4, ""), manakala gcc menilai mereka berpotensi dalam susunan yang bertentangan. Perbezaan tertib ini membawa kepada hasil yang berbeza dalam panggilan fungsi berantai.

C 17 Changes

Dalam C 17, susunan penilaian untuk ungkapan postfix (seperti panggilan berantai) telah diperkuatkan. Permulaan parameter (termasuk kesan sampingan) dalam hujah fungsi kini dijujukan secara tidak tentu berkenaan dengan parameter lain. Ini memastikan bahawa kod seperti yang dipersoalkan akan mempunyai gelagat yang dinyatakan dengan baik.

Atas ialah kandungan terperinci Adakah Kod \'Bahasa Pengaturcaraan C\' Edisi Keempat Menunjukkan Gelagat Yang Ditakrifkan dengan Baik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber: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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!