Maison  >  Article  >  développement back-end  >  Pourquoi est-ce que je reçois une erreur « Syntaxe non standard » dans mon code C ?

Pourquoi est-ce que je reçois une erreur « Syntaxe non standard » dans mon code C ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-02 01:25:30663parcourir

Why Am I Getting a

Comprendre l'erreur de « syntaxe non standard »

Lors de l'écriture de code en C, les programmeurs rencontrent souvent des erreurs telles que la « syntaxe non standard ». Cette erreur se produit lorsqu'une opération est effectuée en utilisant une syntaxe qui n'est pas officiellement reconnue par le langage C.

Problème : pointeur de fonction membre manquant

Dans votre cas spécifique, l'erreur provient du code suivant :

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

Ici, la fonction player1Move est une fonction membre de la classe TicTacToe. Cependant, le nom de la fonction est utilisé comme une expression unique, sans appeler la syntaxe d'appel de fonction. Selon les conventions C, cela est incorrect pour les fonctions membres.

Résolution : Utilisation de l'opérateur Adresse-de

Pour obtenir correctement un pointeur vers une fonction membre, vous devez utiliser l'adresse-de opérateur (&). Cet opérateur crée une référence à l'emplacement mémoire de la fonction, nous permettant d'accéder indirectement à la fonction.

Le correctif de votre code est :

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

Avec ce changement, la fonction player1Move peut être invoqué correctement par d'autres parties du programme à l'aide du . opérateur, comme ceci :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn