2008-10-05 5 views

답변

43

#import은 Microsoft 관련 사항으로 COM 또는 .NET 전용입니다.

#include은 소스 코드 파일에 헤더 (또는 때때로 다른 소스 코드) 파일을 포함하는 데 사용되는 표준 C/C++ 사전 처리기 문입니다.

+3

에게 있습니다. #import 지시문은 공식적으로 버전 3의 gcc 팀에서 사용 중지되었습니다.4를 지원하고 gcc의 모든 이전 버전에서 시간의 99 %를 올바르게 작동합니다 –

+5

... #import를 지원합니다 –

+1

호기심, 나는 그 사실을 몰랐습니다. 아마 나는 그것이 COM과 .NET에 특화된 것이라는 말을해야 할 것이다. –

66

VC++에서 가져 오기 :#import은 형식 라이브러리 또는 .tlbs (COM 스터프) 용입니다.

형식 라이브러리의 내용은 대부분 자동으로 COM 인터페이스를 설명하는 C++ 클래스로 변환 된 다음 파일에 포함됩니다.

#import 지시어는 Microsoft에서 C++ 언어 확장으로 도입되었습니다. 당신은 그것에 대해 this MSDN article에서 읽을 수 있습니다.

#import 지시문은 .NET/CLI 항목에도 사용됩니다.

gcc로 가져 오기 : gcc의 가져 오기가 VC++의 가져 오기와 다릅니다. 한 번만 헤더를 포함시키는 간단한 방법입니다. (VC++에서와 GCC 한 번뿐만 아니라 #pragma를 통해이 작업을 수행 할 수 있습니다)

#import 지시어는 공식적으로 버전 3.4에서 gcc를 팀에 의해 undeprecated 및

을 지원하는 GCC의 모든 이전 버전에서 시간의 99 잘 %를 작동했다

포함 :#include은 대부분 헤더 파일이지만 현재 파일에 내용을 추가합니다. #include은 C++ 표준의 일부입니다. this MSDN article에서 읽을 수 있습니다.

4

수입도 그 제안은 보류 결정적 인 경우 또는이 기다리고있어 만약 내가 아는 언어 괴짜 충분하지 않다 2006 년 9 월 Daveed Vandevoorde하여 언어위원회에 제안 n2073, Modules in C++와 관련된 키워드 중 하나였다 저자 또는 다른 사람에서 구현 (개념 증명) ...

+0

데이브드 (Daveed)는 당시 EDG 직원 이었으므로 코드 작성자가 근무할 것으로 기대합니다. – MSalters

+1

'#include'에서 가져 오기 메커니즘으로 전환하는 것이 좋을 것이므로 필요한 작업을 완료했으면 좋겠다. 하지만이 기능에 대해 한눈에 들어 보았습니다. C++ 0X가 아닌 것으로 확신합니다. 어쩌면 내가 은퇴하기 전의 언젠가^^ ~ –

+1

내가 걱정하기에, 그것은 몇 년 밖에 안된다 : [C++ 09의 모듈?] (http://groups.google.com/group/comp.lang.c++. moderated/msg/5ce3042a8de03284? dmode = source) –

7

#import 전체 해결 방법 보통

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

솔루션입니다. #import은 이전에 포함되지 않은 경우에만 파일을 포함합니다.

Apple의 Objective-C에서도 #import 문을 사용한다는 점은 주목할 가치가 있습니다.

3

gcc 4.1에서 #import입니다. 당신이 그것을 사용하는 경우 경고를 얻을 것이다 :

#import는 사용되지 않는 GCC 확장 이것은 사실이 아니다