首頁 > 後端開發 > C++ > 主體

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

Barbara Streisand
發布: 2024-11-02 01:25:30
原創
728 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板