Spesifikasi C mentakrifkan pelbagai jenis tingkah laku program, termasuk tidak ditentukan, tidak ditentukan, ditentukan pelaksanaan, tersilap , dan tidak berbentuk. Walaupun beberapa perbezaan agak jelas, istilah "tidak berbentuk; tiada diagnostik diperlukan" telah menimbulkan persoalan tentang maksud tepatnya.
Tidak terbentuk: A program yang melanggar sama ada sintaks atau peraturan semantik yang boleh didiagnosis.
Tidak ditentukan gelagat: Gelagat program yang mana piawaian tidak membuat andaian atau keperluan tentang tindakan pelaksanaan.
Salah: Istilah yang digunakan oleh piawai untuk menunjukkan bahawa atur cara tidak berbentuk atau terlibat dalam tingkah laku yang tidak ditentukan.
Dibentuk dengan baik: Program yang mematuhi kepada sintaks dan peraturan semantik yang boleh didiagnosis.
Perkataan khusus ini muncul apabila pelaksanaan memanjangkan bahasa dengan cara yang memperkenalkan sintaks atau tingkah laku. Mengikut piawaian, sambungan sedemikian dianggap tidak betul, tetapi pelaksanaannya dibenarkan untuk tidak mengeluarkan mesej diagnostik.
Perbezaan penting di sini ialah tingkah laku yang tidak ditentukan secara eksplisit mengakui sifat program yang salah, manakala "tidak berbentuk; tiada diagnostik diperlukan" merujuk kepada kes tertentu di mana pelaksanaan membenarkan pelanggaran tanpa memberikan mesej ralat yang jelas.
Sebuah program yang tidak betul tidak seharusnya disusun secara teknikal. Walau bagaimanapun, dalam kes "tidak betul; tiada diagnostik diperlukan," pelaksanaan secara teknikal dibenarkan untuk menyusun secara senyap dan juga melaksanakan program tanpa amaran.
Penggunaan standard yang tidak konsisten terminologi yang mengelilingi kesilapan telah membawa kepada kekeliruan. Istilah "erroneous" membayangkan ralat yang memerlukan diagnostik, tetapi bahagian "Nota" dalam 1.3.13 membenarkan pelaksanaan mengabaikan masalah sedemikian secara senyap.
Walaupun mungkin terdapat perbezaan yang ketara antara "tidak betul; tiada diagnostik diperlukan" dan "tingkah laku yang tidak ditentukan", ketidakkonsistenan piawaian menjadikannya sukar untuk menjelaskan perbezaan. Akhirnya, kedua-dua istilah merujuk kepada situasi di mana tingkah laku program tidak dapat diramalkan dan boleh mengakibatkan hasil yang tidak dijangka.
Atas ialah kandungan terperinci Apakah Perbezaan Antara 'Tingkah Laku Tidak Ditakrifkan' C dan 'Tidak Terbentuk; Tiada Diagnostik Diperlukan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!