Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Rujukan Const dalam C : Sebelum atau Selepas Penentu Jenis?

Rujukan Const dalam C : Sebelum atau Selepas Penentu Jenis?

Barbara Streisand
Barbara Streisandasal
2024-11-24 10:02:12242semak imbas

Const Reference in C  : Before or After the Type Specifier?

Rujukan Const dalam C : Peletakan Sebelum vs. Selepas Penentu Jenis

Dalam C , apabila berurusan dengan rujukan const, timbul persoalan mengenai penempatan kata kunci const berhubung dengan penentu jenis: sebelum atau selepas? Mari kita periksa sintaks dan tingkah laku kedua-dua bentuk ini.

Sintaks:

  • Rujukan Const Sebelum Penentu Jenis:

    int foo1(const Fred &arg) {
    ...
    }
  • Rujukan Const Selepas Jenis Penentu:

    int foo2(Fred const &arg) {
    ...
    }

Gelagat:

Kedua-dua sintaks menghasilkan gelagat yang sama. Bahasa merawat konst T& dan T const& sebagai jenis yang setara. Ini terpakai pada pengisytiharan penunjuk dan rujukan.

Pertimbangan Gaya:

Walaupun tiada perbezaan fungsi antara kedua-dua pilihan peletakan, pilihan gaya berbeza-beza. Walau bagaimanapun, terdapat beberapa hujah yang perlu dibuat untuk memilih const T& (dan const T*):

  • Ketekalan dengan Teks Standard: const T& ialah gaya yang digunakan dalam kedua-dua buku Bahasa Pengaturcaraan C oleh Bjarne Stroustrup dan piawaian C itu sendiri.
  • Ubiquity: const T&/const T* secara empirik lebih biasa dalam kod C dan C daripada penempatan alternatifnya.
  • Kekaburan Penghuraian: Tersilap letak asterisk dengan T const* ialah isu yang berpotensi, manakala const* T bukan sintaks yang sah.

Peraturan penghuraian kanan ke kiri yang sering disebut memihak kepada meletakkan const selepas penentu jenis boleh subjektif . const T& juga boleh dihuraikan dari kanan ke kiri sebagai "rujukan kepada pemalar T."

Atas ialah kandungan terperinci Rujukan Const dalam C : Sebelum atau Selepas Penentu Jenis?. 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