Point-virgule à la fin des if-statements et des fonctions en C
Je viens de croiser un peu de code que la surutilisation des points-virgules, ou utilisez le point-virgule pour des fins différentes que je ne suis pas au courant de.
J'ai trouvé des points-virgules à la fin de si-états et à la fin de fonctions. Par exemple:
int main (int argc, char * argv[]) {
//some code
if (x == NULL) {
//some code
}; <-----
//more code
return 0;
}; <---
Il est en train de compiler avec les cc, pas de gcc.
Que ces points-virgules? Je suis en supposant qu'il n'y a pas de différence, car le compilateur serait juste de le considérer comme instruction vide.
source d'informationauteur codingbear
Vous devez vous connecter pour publier un commentaire.
Ils ne font rien. Ils sont un signe de quelqu'un qui ne comprend pas la langue terriblement bien, je pense.
Si c'est le code source théoriquement "propre", je voudrais supprimer le code et essayer d'avoir une douce conversation avec la personne qui l'a écrit.
que mannequin de statememt. Vous l'échantillon est identique à
Vous avez raison, le compilateur considère vide consolidés. Ils ne sont pas nécessaires, je suppose que le programmeur en quelque sorte pensé qu'ils étaient.
Le premier point-virgule (après le if) est juste un vide d'expression, qui ne fait rien. Je ne vois pas en tout point de l'avoir là.
Le deuxième point-virgule (après la fonction) est une erreur, puisqu'il est en dehors de tout bloc de code. Le compilateur doit donner un avertissement.
Ces points-virgules ne sont pas nécessaires (comme vous l'avez dit, ils sont vides consolidés). Votre code compile avec gcc, prévoyant que 'x' est déterminé (vérifier http://www.codepad.org). Il n'y a pas de raison pour qu'un compilateur C refuser de compiler votre code.
Je pense que l'auteur peut avoir été quelque chose comme:
que vous pourriez faire si vous avez été échafaudage code et voulaient encore à compiler. Il ya une bonne chance que c'est juste une erreur que Jon suggère cependant.
Ces points-virgules sont inutiles comme d'autres l'ont fait déjà. La seule chose que je veux ajouter, c'est que l'OMI, de l'optimisation de toute façon c'est à dire, le compilateur ne génère pas de code réel pour ces.