¿Cuál es la diferencia entre #include
y #import
en C ++?
95
#import
es algo específico de Microsoft, aparentemente solo para cosas COM o .NET.
#include
es una declaración de preprocesador estándar de C / C ++, que se utiliza para incluir archivos de encabezado (u ocasionalmente otro código fuente) en su archivo de código fuente.
Importar en VC ++:
#import
es para bibliotecas de tipos o .tlbs (cosas COM).El contenido de la biblioteca de tipos se convierte en clases de C ++, principalmente describiendo las interfaces COM automáticamente, y luego se incluye en su archivo.
La
#import
directiva fue introducido por Microsoft como una extensión del lenguaje C ++. Puede leerlo en este artículo de MSDN .La
#import
directiva también se usa con cosas .NET / CLI.Importar en gcc: La importación en gcc es diferente de la importación en VC ++. Es una forma sencilla de incluir un encabezado como máximo una vez. (En VC ++ y GCC también puede hacer esto
#pragma
una vez)El
#import
equipo de gcc oficialmente no adoptó la directiva en la versión 3.4 y funciona bien el 99% del tiempo en todas las versiones anteriores de gcc que admitenIncluir:
#include
es principalmente para archivos de encabezado, pero para anteponer el contenido a su archivo actual.#include
es parte del estándar C ++. Puede leerlo en este artículo de MSDN .fuente
#import
es en general una solución a lo habitualsolución alterna.
#import
incluye un archivo solo si no se ha incluido antes.Vale la pena señalar que Objective-C de Apple también usa
#import
declaraciones.fuente
importar también fue una de las palabras clave asociadas con n2073, Módulos en C ++ , propuesta al comité de idiomas por Daveed Vandevoorde en septiembre de 2006. No soy lo suficientemente experto en idiomas para saber si esa propuesta fue definitivamente archivada o si está esperando una implementación (prueba de concepto) del autor o de otra persona ...
fuente
Tenga en cuenta que en gcc 4.1,
#import
está obsoleto. Si lo usa, recibirá una advertencia:fuente