首頁 >後端開發 >C++ >為什麼我的 C 程式碼中會出現「非標準語法」錯誤?

為什麼我的 C 程式碼中會出現「非標準語法」錯誤?

Barbara Streisand
Barbara Streisand原創
2024-11-02 01:25:30735瀏覽

Why Am I Getting a

理解「非標準語法」錯誤

在用 C 編寫程式碼時,程式設計師經常會遇到「非標準語法」之類的錯誤。當使用 C 語言未正式識別的語法執行操作時,會出現此錯誤。

問題:缺少成員函數指標

在您的特定情況下,錯誤源自於以下程式碼:

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

這裡,player1Move函數是TicTacToe類別的成員函數。但是,函數名稱用作單一表達式,而不呼叫函數呼叫語法。根據 C 約定,這對成員函數是不正確的。

解決方案:使用 Address-of 運算子

要正確取得指向成員函數的指針,需要使用 address-of操作員 (&)。此運算符會建立對函數記憶體位置的引用,使我們能夠間接存取該函數。

程式碼的修復是:

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

透過此更改,player1Move 函數可以程式的其他部分使用 .運算符,如下所示:

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

以上是為什麼我的 C 程式碼中會出現「非標準語法」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn