¿Cuál es la diferencia entre #includey #importen 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 ++:
#importes 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
#importdirectiva fue introducido por Microsoft como una extensión del lenguaje C ++. Puede leerlo en este artículo de MSDN .La
#importdirectiva 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
#pragmauna vez)El
#importequipo 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:
#includees principalmente para archivos de encabezado, pero para anteponer el contenido a su archivo actual.#includees parte del estándar C ++. Puede leerlo en este artículo de MSDN .fuente
#importes en general una solución a lo habitualsolución alterna.
#importincluye un archivo solo si no se ha incluido antes.Vale la pena señalar que Objective-C de Apple también usa
#importdeclaraciones.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,
#importestá obsoleto. Si lo usa, recibirá una advertencia:fuente