Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Saya Mendapat Ralat \"Sintaks Bukan Standard\" dalam Kod C Saya?

Mengapa Saya Mendapat Ralat \"Sintaks Bukan Standard\" dalam Kod C Saya?

Barbara Streisand
Barbara Streisandasal
2024-11-02 01:25:30663semak imbas

Why Am I Getting a

Memahami Ralat "sintaks bukan standard"

Apabila menulis kod dalam C , pengaturcara sering menghadapi ralat seperti "sintaks bukan standard." Ralat ini berlaku apabila operasi dilakukan menggunakan sintaks yang tidak diiktiraf secara rasmi oleh bahasa C.

Isu: Penunjuk Fungsi Ahli Hilang

Dalam kes khusus anda, ralat berasal daripada kod berikut :

<code class="cpp">void TicTacToe::player1Move(string coordX) // ERROR
{
  cout << "Enter X: " << endl;
  cin >> coordX;
  _coordX = coordX;
}</code>

Di sini, fungsi player1Move ialah fungsi ahli kelas TicTacToe. Walau bagaimanapun, nama fungsi digunakan sebagai ungkapan tunggal, tanpa menggunakan sintaks panggilan fungsi. Menurut konvensyen C, ini tidak betul untuk fungsi ahli.

Penyelesaian: Menggunakan Alamat-Pengendali

Untuk mendapatkan penunjuk dengan betul kepada fungsi ahli, anda perlu menggunakan alamat-pengusaha pengendali (&). Operator ini membuat rujukan kepada lokasi memori fungsi, membolehkan kami mengakses fungsi secara tidak langsung.

Pembetulan kod anda ialah:

<code class="cpp">void TicTacToe::player1Move(string coordX)
{
  cout << "Enter X: " << endl;
  cin >> coordX;
  _coordX = coordX;
}</code>

Dengan perubahan ini, fungsi player1Move boleh dipanggil dengan betul oleh bahagian lain program menggunakan . pengendali, seperti ini:

<code class="cpp">TicTacToe Board;
Board.player1Move("1");</code>

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat \"Sintaks Bukan Standard\" dalam Kod C Saya?. 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