Heim  >  Artikel  >  Backend-Entwicklung  >  Warum erhalte ich in meinem C-Code den Fehler „Nicht standardmäßige Syntax'?

Warum erhalte ich in meinem C-Code den Fehler „Nicht standardmäßige Syntax'?

Barbara Streisand
Barbara StreisandOriginal
2024-11-02 01:25:30728Durchsuche

Why Am I Getting a

Den Fehler „Nicht-Standard-Syntax“ verstehen

Beim Schreiben von Code in C stoßen Programmierer häufig auf Fehler wie „Nicht-Standard-Syntax“. Dieser Fehler tritt auf, wenn eine Operation mit einer Syntax ausgeführt wird, die von der C-Sprache nicht offiziell anerkannt wird.

Problem: Fehlender Member-Funktionszeiger

In Ihrem speziellen Fall stammt der Fehler aus dem folgenden Code :

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

Hier ist die Funktion „player1Move“ eine Mitgliedsfunktion der TicTacToe-Klasse. Der Funktionsname wird jedoch als einzelner Ausdruck verwendet, ohne dass die Funktionsaufrufsyntax aufgerufen wird. Gemäß C-Konventionen ist dies für Mitgliedsfunktionen falsch.

Lösung: Verwendung des Address-of-Operators

Um einen Zeiger auf eine Mitgliedsfunktion korrekt zu erhalten, müssen Sie den Address-of-Operator verwenden Operator (&). Dieser Operator erstellt einen Verweis auf den Speicherort der Funktion, sodass wir indirekt auf die Funktion zugreifen können.

Die Korrektur Ihres Codes lautet:

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

Mit dieser Änderung kann die Funktion „player1Move“ ausgeführt werden von anderen Teilen des Programms mithilfe der korrekt aufgerufen werden. Operator, etwa so:

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

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in meinem C-Code den Fehler „Nicht standardmäßige Syntax'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn