2012-01-05 3 views
1

"c"헤더 파일을 cpp 파일에 포함하려고합니다. c 헤더 파일의 키워드는 "부울"입니다.C++ 파일의 c 헤더 포함

extern "C"{ 
#include "configstore.h" 
} 

또는

#ifdef __cplusplus 
extern "C" 
{ 
#endif 

#include "configstore.h" 

#ifdef __cplusplus 
} 
#endif 

어느 방법 : 아래

#ifndef _CONFIGSTORE_H_ 
#define _CONFIGSTORE_H_ 

#ifdef __cplusplus 
extern "C" 
{ 
#endif 
Boolean ConfigStoreIsPassword(char *pName); 

#ifdef __cplusplus 
} 
#endif 

#endif //_CONFIGSTORE_H_ 

내가 내 CPP 파일에서 C 헤더를 포함하고있는 방법입니다

C 헤더는 다음과 같이 보입니다 내가 포함, 나는 아래 오류 : ../../../../src/Common/framework/configstore.h:52 : 오류 : '부울'이 유형을 지정하지 않습니다

cpp 파일에 c 헤더를 추가하는 방법을 알려주십시오. 미리 감사드립니다 !!

-Vasavi

+0

C 또는 C++과 아무 관련이 없습니다. 형식을 정의하거나 정의가있는 파일을 포함하면됩니다. – littleadv

+0

'Boolean'은 C 또는 C++에서 타입이 아닙니다. 당신이 C. – hmjd

+0

에 사용할 수 없게 될 것입니다 때문에'typedef' 또는 매크로 곳이 작품을 포함합니까, 당신의'Boolean' 유형에 관련된 문제가 있습니다. – Paul

답변

5

두 가지 생각이 여기 있습니다. 하나는 extern "C" 블록을 다른 블록 extern "C" 블록 안에 중첩시킵니다. 외부 블록을 제거하십시오.

두, Boolean은 (는) C++에서 키워드가 아닙니다. bool입니다. 헤더를 포함하기 전에 typedef bool Boolean;을 추가하십시오.

+4

"boolean"도 C++ 유형이 아니며 "bool"입니다. – haffax

1

BooleanC 또는 C++ 중 하나의 표준 형식이 아닙니다.

파일을 포함하기 전에 Boolean이 선언 된 헤더를 찾아야합니다.

0

C++ 컴파일러에서 이해할 수있는 Boolean 유형의 정의를 제공해야합니다.

extern "C"은 심볼 이름이 맹 글링되는 방식에만 영향을 미치며, 마술처럼 C++ 컴파일러가 C 특정 유형을 이해하게하지는 않습니다.

아니요 Boolean은 (는) 유효한 C입니다. 다른 헤더가 포함 된 것 같습니다.

0

당신은 필요하지 않으며 #include 문 주위에 extern "C"을 사용할 수 없습니다. 헤더가 이미이 작업을 수행합니다. configstore.h에는 Boolean의 정의가 포함되어야합니다. 다른 언급, 당신은 소스 파일에 Boolean의 정의를 추가 (또는 정의 포함) configstore.h을 포함한 전을하지만 관련이없는 모듈 사이의 순서 종속 관계를 포함 생성으로 이것은 나쁜 생각 할 수있다.