Visual Studio 2008 n'attrape pas les erreurs de syntaxe. par exemple: Tpc_feed(void);
compile bien. ceci: Tpc_feed(void);;;;;;;
se compile bien, mais ce Tpc_feed(void)
attrape une erreur. Les points-virgules supplémentaires ne sont-ils pas des erreurs de syntaxe? Je suis sur Windows 7 32 bits et VS C++ 2008Visual Studio 2008 ne rencontre pas d'erreur de syntaxe
Répondre
Techniquement, c'est une erreur de syntaxe, mais la plupart des compilateurs le permettent de toute façon. GCC l'autorise même par défaut, sauf si vous compilez avec -pedantic
.
Dans tous les cas, c'est contre la norme donc vous devriez vous débarrasser des extras.
Je sais que je devrais me débarrasser d'eux, mais pourquoi les compilateurs le permettent-ils? – TheFuzz
Qui sait? Les compilateurs ne sont pas parfaits. Ce n'est probablement pas une haute priorité à corriger parce que (1) n'a aucun effet sur les programmes corrects, et (2) il est facile de deviner l'intention du codeur quand il tape comme ça. – zildjohn01
Sans un type de retour, aucun d'entre eux ne devrait compiler en C++. En supposant qu'un type de retour est ajouté, les points-virgules supplémentaires sont autorisés sur les déclarations de fonction de membre, mais si les déclarations sont en dehors d'une classe/struct, elles sont interdites. Je ne crois pas que VC++ ait un drapeau pour les contraindre à être marqués comme des erreurs.
Edit: En fait (revenir en arrière et les choses revérifier), un point-virgule inutile est autorisé suite à une fonction membre définition, mais je pense que vous avez raison, et il n'a pas le droit suite à une fonction membre déclaration.
son constructeur de classe, donc ne compile-t-il pas en C++? – TheFuzz
Oh, d'accord - oui, un ctor n'a pas besoin de (et en fait, ne peut pas) spécifier un type de retour. Mes excuses. –
Comme d'autres l'ont déjà dit, ce n'est pas un C++ valide. La raison pour laquelle beaucoup de compilateurs soutiennent qu'il est de toute façon qu'il permet de créer des macros un peu plus facile/plus intuitive, considérez ceci:
// Declares a function, and because the semicolon belongs to the declaration, the macro adds it
#define MY_FUNCTION_DECL(returnType, arguments) returnType myFunction arguments;
// Calling macros looks like functions, the semicolon looks natural
MY_FUNCTION_DECL(void, (int, int, int)); // There are two semicolons now
Cet exemple est un peu bizarre que je l'ai fait en ce moment, mais il devrait représenter l'idée derrière accepter plus de points-virgules comme valides.
- 1. Visual Studio 2008 ne reconnaît pas la syntaxe d'expression lambda
- 2. Coloriage de syntaxe Visual Studio 2008 Problème
- 3. Visual Studio 2008 ne reconnaît pas DevExpress
- 4. Visual Studio 2008 ne serait pas déboguer
- 5. Syntaxe de requête Visual Studio 2008 sql; supprimer les crochets
- 6. Le bloc catch ne rencontre pas d'exception
- 7. Visual Studio (2008) ne génère pas de documentation xml
- 8. Visual Studio 2008 ne pas aligner les variables de pile?
- 9. L'installation de Visual Studio 2008 ne fonctionne pas!
- 10. Fonctionnalités de Visual Studio 2005 qui ne sont pas dans Visual Studio 2008
- 11. Visual Studio 2008 ne modifieront pas lire uniquement les fichiers
- 12. visual studio 2008 asp.net ne pas lancer la page
- 13. Visual Studio 2008 Rechercher dans les fichiers ne fonctionne pas ..!
- 14. T4 ne fonctionne pas dans Visual Studio 2008
- 15. Debug Visual Studio 2008 ne s'arrête pas sur erreur
- 16. Les tests ne sont pas disponibles dans Visual Studio 2008?
- 17. Les modifications dans Visual Studio 2008 ne 'prennent pas'
- 18. Le point d'arrêt Visual Studio 2008 ne fonctionne pas
- 19. Visual Studio 2008 Xaml Editor ne fonctionne pas/a disparu
- 20. Points d'arrêt ne fonctionnant pas dans Visual Studio 2008
- 21. Formation Visual Studio 2008
- 22. installez Visual Studio 2008
- 23. Visual Studio 2008 SignTool.exe pas trouvé
- 24. Visual Studio 2008 Installation
- 25. Bogues Visual Studio 2008?
- 26. Télécharger Visual Studio 2008
- 27. Débogage Visual Studio 2008
- 28. Visual Studio 2008
- 29. Visual Studio 2008 - mise en évidence de la syntaxe et intellisense ne fonctionnant pas pour aspx, js, css
- 30. Correctifs Visual Studio 2008
Les règles de grammaire requièrent le point-virgule. Les points-virgules consécutifs impliquent des lignes vides de code, qui sont ignorées par le compilateur. – Rahul