Domanda

Qual è la differenza tra #include e #import in C ++?

È stato utile?

Soluzione

#import è una cosa specifica di Microsoft, apparentemente solo per roba COM o .NET.

#include è un'istruzione preprocessore standard C / C ++, utilizzata per includere i file header (o occasionalmente altri codici sorgente) nel file dei codici sorgente.

Altri suggerimenti

Importa in VC ++: #import è per le librerie dei tipi o .tlbs (roba COM).

Il contenuto della libreria dei tipi viene convertito in classi C ++, descrivendo principalmente le interfacce COM per te automaticamente, quindi viene incluso nel tuo file.

La direttiva #import è stata introdotta da Microsoft come estensione del linguaggio C ++. Puoi leggerlo a questo articolo MSDN .

La direttiva #import è usata anche con roba .NET / CLI.

Importa in gcc: L'importazione in gcc è diversa dall'importazione in VC ++. È un modo semplice per includere un'intestazione al massimo una sola volta. (In VC ++ e GCC puoi farlo anche tramite #pragma )

La direttiva #import era ufficialmente non approvata dal team gcc nella versione 3.4 e funziona bene il 99% delle volte in tutte le versioni precedenti di gcc che supportano

Includi: #include è per lo più file di intestazione, ma per anteporre il contenuto al file corrente. #include fa parte dello standard C ++. Puoi leggerlo a questo articolo MSDN .

#import è nel complesso una soluzione al solito

#ifndef ...
#define ...
#include ...
#endif

work-around. #import include un file solo se non è stato incluso in precedenza.

Potrebbe valere la pena notare che l'Obiettivo-C di Apple utilizza anche le istruzioni #import .

import era anche una delle parole chiave associate a n2073, Moduli in C ++ , proposti al comitato linguistico da Daveed Vandevoorde nel settembre 2006. Non sono abbastanza un fanatico della lingua per sapere se quella proposta è stata definitivamente accantonata o se è in attesa di un'implementazione (proof of concept) dell'autore o di qualcun altro ...

Nota che in gcc 4.1, #import è deprecato. Se lo usi, riceverai un avviso:

  

#import è un'estensione GCC obsoleta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top