Qual é a diferença entre #include
e #import
em C ++?
95
#import
é uma coisa específica da Microsoft, aparentemente apenas para coisas COM ou .NET.
#include
é uma instrução de pré-processador C / C ++ padrão, usada para incluir arquivos de cabeçalho (ou ocasionalmente outro código-fonte) em seu arquivo de código-fonte.
Importar em VC ++:
#import
é para bibliotecas de tipos ou .tlbs (coisas COM).O conteúdo da biblioteca de tipos é convertido em classes C ++, principalmente descrevendo as interfaces COM para você automaticamente e, em seguida, é incluído em seu arquivo.
A
#import
diretiva foi introduzida pela Microsoft como uma extensão da linguagem C ++. Você pode ler sobre isso neste artigo do MSDN .A
#import
diretiva também é usada com coisas .NET / CLI.Importar no gcc: a importação no gcc é diferente da importação no VC ++. É uma maneira simples de incluir um cabeçalho no máximo uma vez. (Em VC ++ e GCC você pode fazer isso via
#pragma
uma vez)A
#import
diretiva não foi oficialmente adotada pela equipe do gcc na versão 3.4 e funciona bem 99% do tempo em todas as versões anteriores do gcc que suportamIncluir:
#include
destina-se principalmente a arquivos de cabeçalho, mas para anexar o conteúdo ao arquivo atual.#include
faz parte do padrão C ++. Você pode ler sobre isso neste artigo do MSDN .fonte
#import
é uma solução geral para o usualGambiarra.
#import
inclui um arquivo apenas se ele não tiver sido incluído antes.Pode ser interessante notar que o Objective-C da Apple também usa
#import
instruções.fonte
import também foi uma das palavras-chave associadas a n2073, Módulos em C ++ , proposta ao comitê de linguagem por Daveed Vandevoorde em setembro de 2006. Não sou um geek da linguagem para saber se essa proposta foi definitivamente arquivada ou se está aguardando uma implementação (prova de conceito) do autor ou de outra pessoa ...
fonte
Observe que no gcc 4.1,
#import
está obsoleto. Se você usá-lo, receberá um aviso:fonte