Rumah >pembangunan bahagian belakang >C++ >Bolehkah anda mengubah suai hujah fungsi `utama` dengan kelayakan seperti `unsigned` dan `const` dalam C ?

Bolehkah anda mengubah suai hujah fungsi `utama` dengan kelayakan seperti `unsigned` dan `const` dalam C ?

Barbara Streisand
Barbara Streisandasal
2024-10-28 17:13:29804semak imbas

Can you modify the `main` function’s arguments with qualifiers like `unsigned` and `const` in C  ?

Bolehkah Unsigned dan Const Qualifiers Digunakan dalam Argumen Fungsi utama C?

Standard C secara jelas mentakrifkan dua tandatangan yang sah untuk yang utama fungsi:

  • int main()
  • int main(int, char*[])

Walau bagaimanapun, persoalan timbul: bolehkah tandatangan ini diubah suai untuk memasukkan kelayakan seperti tidak ditandatangani dan const?

Analisis:

Piawaian C 98 menyatakan bahawa fungsi utama tidak boleh terlebih beban dan mesti mengembalikan integer (int) menaip. Walaupun ia tidak secara eksplisit menangani penggunaan qualifier dalam hujah, ia membenarkan pelaksanaan untuk mentakrifkan gelagat tambahan melebihi standard.

Kesimpulan:

Mengikut standard, tandatangan berikut adalah sah dan harus diterima oleh penyusun yang mematuhi:

int main(const unsigned int, const char* const* argv);

Ini kerana piawaian membenarkan tandatangan tambahan ditakrifkan oleh pelaksanaan, selagi jenis pemulangan kekal int.

Maklumat Tambahan:

Adalah penting untuk ambil perhatian bahawa walaupun piawaian C mentakrifkan dua tandatangan yang disebut sebagai sah, ia tidak memerlukan pelaksanaan untuk menyokongnya. Dalam persekitaran yang berdiri sendiri, tingkah laku permulaan dan penamatan ditentukan oleh pelaksanaan, dan piawaian mengecualikan persekitaran ini daripada sebarang keperluan selain daripada mendokumentasikan tingkah laku mereka.

Atas ialah kandungan terperinci Bolehkah anda mengubah suai hujah fungsi `utama` dengan kelayakan seperti `unsigned` dan `const` dalam 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