Rumah >pembangunan bahagian belakang >C++ >Adakah Perintah Penilaian Operand Dijamin dalam C dan C?

Adakah Perintah Penilaian Operand Dijamin dalam C dan C?

DDD
DDDasal
2024-11-03 07:34:30694semak imbas

Is Operand Evaluation Order Guaranteed in C and C  ?

Tertib Penilaian Operan dalam Ungkapan

Apabila menulis ungkapan, adalah penting untuk memahami susunan operan akan dinilai. Ini boleh memberi kesan kepada hasil ungkapan, terutamanya apabila kesan sampingan terlibat.

C dan C

Dalam kedua-dua C dan C , susunan penilaian untuk operan ialah tidak dinyatakan. Ini bermakna pengkompil bebas menilai operan dalam sebarang susunan yang dipilihnya.

Sebagai contoh, pertimbangkan ungkapan a b. Ia tidak dijamin bahawa a akan dinilai sebelum b. Pengkompil boleh memilih untuk menilai b dahulu, dan kemudian menyimpan hasilnya dalam pembolehubah sementara sebelum menilai a.

Piawaian untuk C secara khusus menyatakan bahawa "tertib penilaian argumen fungsi tidak ditentukan," dan untuk normal operator, "urutan penilaian operan bagi pengendali individu dan subungkapan bagi ungkapan individu [...] tidak ditentukan."

C 11 and Beyond

Perkataan untuk susunan penilaian operan telah berubah sedikit dalam versi C 11 dan yang lebih baru. Kenyataan kedua kini mengatakan bahawa perintah itu "tidak berurutan" dan bukannya tidak ditentukan. Walau bagaimanapun, ini pada dasarnya adalah konsep yang sama. Pengkompil masih tidak diperlukan untuk menilai operan dalam sebarang susunan tertentu.

Kesimpulan

Adalah penting untuk mengetahui bahawa susunan penilaian operan tidak dinyatakan dalam C dan C . Ini boleh memberi kesan kepada hasil ekspresi, terutamanya apabila kesan sampingan terlibat. Apabila menulis ungkapan, sebaiknya elakkan bergantung pada susunan penilaian tertentu.

Atas ialah kandungan terperinci Adakah Perintah Penilaian Operand Dijamin dalam C dan C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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