Répondre

1

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.

2

Parce que "stdafx.h" doit être le d'abord inclure dans .cpp fichiers, nulle part ailleurs.

1

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.

3

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

+1, bon point. Totalement ne pense pas à ça. – Xeo