Quelle est la différence entre #include
et #import
en C ++?
95
#import
est une chose spécifique à Microsoft, apparemment pour les trucs COM ou .NET uniquement.
#include
est une instruction de préprocesseur C / C ++ standard, utilisée pour inclure des fichiers d'en-tête (ou parfois d'autres codes source) dans votre fichier de code source.
Importer en VC ++:
#import
est pour les bibliothèques de types ou .tlbs (trucs COM).Le contenu de la bibliothèque de types est converti en classes C ++, décrivant principalement les interfaces COM pour vous automatiquement, puis il est inclus dans votre fichier.
La
#import
directive a été introduite par Microsoft comme une extension du langage C ++. Vous pouvez en savoir plus sur cet article MSDN .La
#import
directive est également utilisée avec des éléments .NET / CLI.Importer dans gcc: L'importation dans gcc est différente de l'importation dans VC ++. C'est un moyen simple d'inclure un en-tête au plus une seule fois. (Dans VC ++ et GCC, vous pouvez également le faire
#pragma
une fois)La
#import
directive n'a pas été officiellement déconseillée par l'équipe gcc dans la version 3.4 et fonctionne correctement 99% du temps dans toutes les versions précédentes de gcc qui prennent en chargeInclure:
#include
est pour la plupart des fichiers d'en-tête, mais pour ajouter le contenu à votre fichier actuel.#include
fait partie de la norme C ++. Vous pouvez en savoir plus sur cet article MSDN .la source
#import
est globalement une solution à l'habituelsolution de contournement.
#import
inclut un fichier uniquement s'il n'a pas été inclus auparavant.Il peut être intéressant de noter que l'Objective-C d'Apple utilise également des
#import
déclarations.la source
import était aussi l'un des mots-clés associés à n2073, Modules en C ++ , proposé au comité des langues par Daveed Vandevoorde en septembre 2006. Je ne suis pas assez geek du langage pour savoir si cette proposition a été définitivement abandonnée ou si elle est en attente d'une implémentation (preuve de concept) de l'auteur ou de quelqu'un d'autre ...
la source
Veuillez noter que dans gcc 4.1,
#import
est obsolète. Si vous l'utilisez, vous recevrez un avertissement:la source