검색결과 리스트
프로그래밍 관련자료에 해당되는 글 2건
- 2009/09/30 C++, C 함수 공용하기
- 2009/02/05 #define 이용 해서 Test(디버그모드일때)할때만 내용 출력하기
글
C++, C 함수 공용하기
문득 다가올 텀프로젝트에 대비하여
C++의 펑션을 C에서 가져다 쓸 방법에 대해 고민하게 되었다.
그 이유는 벡터와 스택과 같은 매우 유용한 클래스 라이브러리를 사용하기 위함이다.
여러가지 방법이 있을수있지만
웹서핑과 실험이후 얻은 결론은 다음과 같다.
a.cpp , main.c
두개의 파일이 있다고 가정하자
a.cpp에는 클래스를 구현한후, wrapper 더미 펑션을 생성한다.
이유는 씨에서 호출하기 위함이다.
클래스를 래핑하여 건드릴 수 있는 더미 함수를 생성할떄 extern "C"로 생성하여
맹글링 문제가 생기지 않게 해주어야 한다.
함수의 다형성 문제로 컴파일러가 펑션 이름을 알아서 바꾸게 되는데 이를 저지하게 해주는
전처리문정도로 생각하면될듯하다.
이렇게하여
g++ -c a.cpp -o a.o
gcc -c main.c -o main.o
이후 오브젝트 코드가 생성되면 g++을 통해 링크해주면 된다
g++ main.o a.o -o a.out
이런식으로 하면 a.out이 생성되고 c코드에서 C++을 불러오는 경이로운(?)모습을 볼 수 있다.
설정
트랙백
댓글
글
#define 이용 해서 Test(디버그모드일때)할때만 내용 출력하기
#ifdef _Test
출력할 내용(테스트 출력용)
#endif
- 디버그 모드일때만 출력할것을 위와 같이 한다음에
stdafx.h 헤더 파일이나 또는 위 *.cpp 파일에 포함되어지는 헤더파일에 아래와 같이 한다.
#define _Test
그리고 출력하지 않을 때는 #define _Test를 주석처리한다.
또는
#ifdef _DEBUG_MODE
#define _Test
#endif
이렇게 하면 디버그 모드일때만 _Test가 선언된다.