Je ne comprends pas pourquoi les gardes d'en-tête ne sont pas utilisés dans les en-têtes pré-compilés ... Des idées?Pourquoi les gardes d'en-tête sont-ils inutiles dans stdafx.h?
Répondre
Habituellement, stdafx.h sera inclus une seule fois par fichier cpp, comme la première instruction, et normalement, aucun autre fichier ne l'inclura. Ainsi, les chances d'inclure récursivement stdafx.h sont minimes, d'où le caractère "inutile" de l'inclusion.
Je conseillerais toujours d'en utiliser un, juste au cas où, ou potentiellement utiliser #pragma once
en haut du fichier.
Parce que "stdafx.h"
doit être le d'abord inclure dans .cpp
fichiers, nulle part ailleurs.
Je ne connais pas le code de l'en-tête précompilé, mais je suppose qu'il contient une "#pragma once", ce qui a le même effet mais ne fonctionne que dans VS (au moins ce n'est pas standard). Je me souviens de l'assistant créé des fichiers MFC en utilisant ceux-ci.
Si tout ce que vous faites est d'inclure d'autres en-têtes, ce n'est pas nécessaire. Si ces fichiers ne peuvent pas être inclus plusieurs fois, ils auront leurs propres gardes d'en-tête. stdafx.h
lui-même ne se soucie pas combien de fois il est inclus sauf si vous l'utilisez mal.
+1, bon point. Totalement ne pense pas à ça. – Xeo
- 1. Pourquoi suis-je incapable de #ifdef stdafx.h?
- 2. Les gardes à l'intérieur reçoivent
- 3. erreur d'analyse sur les gardes
- 4. Impossible de trouver stdAfx.h
- 5. GUID Eclipse comprennent les gardes
- 6. moins les gardes: pourcentage positif
- 7. gardes less.js et conditionals
- 8. Le but de stdafx.h (Et: Pourquoi ça ne marche pas?)
- 9. gardes de code ne
- 10. Compréhension liste ET gardes
- 11. enlever les boutons inutiles
- 12. Ne peut pas définir stdafx.h
- 13. C++ ne trouve pas stdafx.h
- 14. gardes de portée créés Dynamiquement
- 15. Comment éviter les caractères inutiles dans WebView
- 16. SQL Rayer les mentions inutiles Dans
- 17. gardes Haskell List comprehensions dans F #
- 18. évaluation des gardes d'actions dans caliburn micro
- 19. Qu'est-il arrivé aux gardes WINVER et _WIN32_WINNT dans windows.h?
- 20. m2eclipse exclure les dossiers inutiles
- 21. XmlSerializer.Deserialize - ignore les éléments inutiles?
- 22. Inclut les erreurs de redéfinition de stdafx.h winsock2
- 23. CSS - js rend les liens inutiles
- 24. Les gardes d'inclusion C++ ne semblent pas fonctionner
- 25. mysql - pourquoi la requête sql sélectionne des valeurs inutiles?
- 26. Pourquoi Oracle Sql * Plus imprime de nombreux en-têtes inutiles?
- 27. Surmonter les caractères inutiles dans la chaîne html dans Android?
- 28. Qu'y a-t-il avec le "Afx" dans StdAfx.h?
- 29. Éviter les balayages de table inutiles
- 30. Compilateur Python bytecode; supprime les variables inutiles?
Merci, +1 à tous – aCuria