티스토리 뷰

CBuilder Project 에는 c 와 cpp 모두 참여 시킬 수 있습니다.
그러나 컴파일러는 서로 다르게 컴파일 합니다.

c 는 말그대로 c 컴파일을 수행하고요 cpp 는 cpp 컴파일을 수행합니다.
c 와 cpp 는 구분상 별 차이는 없으나
cpp 는 class 구문이 추가 되었다는것이죠.
기타 다른 차이점도 다소 있겠지만요.

c source 에서는 vcl.h 를 사용못한다는 것도 결론적인 차이겠군요.

사실 더 큰차이는
서로 함수의 선언 부분입니다.
a.cpp 와 b.c 가 있다고 가정하고 두개 모두 같은 프로젝트에 있다고 가정하죠.

a.cpp 에
void acpp() 함수가 있다고 가정하고

b.c 에
void bc() 라는 함수가 있다고 가정하면

a.cpp 에서는 bc() 함수를 호출 못합니다.
또한 b.c  에서도 acpp() 함수를 호출 못합니다.

단..
함수를 이렇게 선언하면 서로 호출 할 수 있습니다.
extern "C"{
   void acpp();
   void bc();
};

컴파일러는 함수를 컴파일 할때 함수명 그대로 가지지 않습니다.
변형을 하게 되는데요.. c 에서와 cpp 에서는 서로 다릅니다.
c 에서는 cpp 형태를 못만들기 때문에 cpp 에서 c 형식으로 만드는 것 이죠.

cpp 에서도 c 구문을 다 쓰실수 있으니까 가능하면 cpp 로 통일해서 (저같은 경우 이런상황이라면
모든 c를 cpp 라 rename 하는 경우가 많습니다) 사용하시는게 좋을것 같습니다.

즉 CBuilder 는 확장자를 이용해 컴파일러를 선택 합니다. pas 는 pascal , c 는 c , cpp 는 cpp
같은 컴파일러라도 내부적으로 컴파일은 다른것 입니다. 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함