В чем разница между #include
и #import
в C ++?
95
#import
это специфическая вещь Microsoft, по-видимому, только для COM или .NET.
#include
- это стандартный оператор препроцессора C / C ++, используемый для включения файлов заголовков (или иногда другого исходного кода) в файл исходного кода.
Импорт в VC ++:
#import
для библиотек типов или .tlbs (материалы для COM).Содержимое библиотеки типов преобразуется в классы C ++, в основном автоматически описывающие интерфейсы COM, а затем включается в ваш файл.
#import
Директива была введена Microsoft в качестве расширения языка C ++. Вы можете прочитать об этом в этой статье MSDN .#import
Директива также используется .NET CLI материал /.Импорт в gcc: импорт в gcc отличается от импорта в VC ++. Это простой способ включить заголовок не более одного раза. (В VC ++ и GCC вы также можете сделать это через
#pragma
один раз)#import
Директива была официально undeprecated командой GCC версии 3.4 и работает отлично 99% времени во всех предыдущих версиях GCC , которые поддерживаютВключить:
#include
в основном для файлов заголовков, но для добавления содержимого к текущему файлу.#include
является частью стандарта C ++. Вы можете прочитать об этом в этой статье MSDN .источник
#import
в целом решение обычногообходной путь.
#import
включает файл, только если он не был включен ранее.Стоит отметить, что Apple Objective-C также использует
#import
утверждения.источник
import также был одним из ключевых слов, связанных с n2073, Модули в C ++ , предложенным языковому комитету Дэвидом Вандевурдом в сентябре 2006 года. Я недостаточно разбираюсь в языке, чтобы знать, было ли это предложение окончательно отложено на полку или ожидает реализации (доказательство концепции) от автора или кого-то еще ...
источник
Обратите внимание, что в gcc 4.1
#import
он устарел. Если вы воспользуетесь им, вы получите предупреждение:источник