Ralat Pengkompil: Larangan ISO C terhadap Perbandingan Penunjuk-Integer
Semasa bereksperimen dengan fungsi ringkas daripada buku teks C Bjarne Stroustrup, pembangun kerap menghadapi ralat penyusunan: "ISO C melarang perbandingan antara penunjuk dan integer." Ralat ini berpunca daripada perbandingan antara penuding dan integer.
Satu contoh isu ini timbul apabila membandingkan input aksara kepada rentetan "y". Dalam kod yang disediakan:
<code class="cpp">#include <iostream> #include <string> using namespace std; bool accept() { cout << "Do you want to proceed (y or n)?\n"; char answer; cin >> answer; if (answer == "y") return true; return false; }</code>
Ralat berlaku kerana kod mentakrifkan jawapan sebagai aksara (char), manakala "y" ialah literal rentetan. Untuk menyelesaikan masalah ini, anda mempunyai dua pilihan:
Kedua-dua penyelesaian menangani sekatan pengkompil dengan memastikan anda membandingkan penuding kepada integer dengan penuding kepada integer lain atau penuding kepada rentetan.
Atas ialah kandungan terperinci Mengapa C Melarang Membandingkan Penunjuk dan Integer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!