С++ включает и импортирует разницу
-
05-07-2019 - |
Вопрос
В чем разница между #include
и #import
на С++?
Решение
#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
была официально аннулирована командой gcc в версии 3.4 и прекрасно работает 99% времени во всех предыдущих версиях gcc, которые поддерживают
Include: #include
в основном для заголовочных файлов, но для добавления содержимого к текущему файлу. #include
является частью стандарта C ++. Вы можете прочитать об этом в этой статье MSDN . р>
#import
в целом это решение к обычному
#ifndef ...
#define ...
#include ...
#endif
обходной путь. #import
включает файл только в том случае, если он не был включен ранее.
Возможно, стоит отметить, что Apple Objective-C также использует #import
заявления.
import также было одним из ключевых слов, связанных с n2073, Модули на C ++ , предложенные Дэйвидом Вандеворде в языковой комитет в сентябре 2006 года. фанат языка, чтобы узнать, было ли это предложение окончательно отложено или его ожидает реализация (подтверждение концепции) от автора или кого-то еще ...
Обратите внимание, что в gcc 4.1 #import
устарела. Если вы используете его, вы получите предупреждение:
#import
является устаревшим расширением GCC