'); }
'); }
project에 cpp파일 및 c 파일이 동시에 있을 경우 c파일의 함수를 extern할 때는 extern "C"를 붙인다
이유는 cpp은 compiler에서 이름을 바꿔서 asm코드를 만든다
이유는 함수 overloading을 위해서인데 이 때문에
cpp파일에서 extern 으로 함수를 선언했을 경우에도 cpp규칙에 의해서 함수이름을 name@@YAHHHH@z등으로 바꾸게 된다.
하지만 extern "C"를 선언하게 되면 이름을 바꾸지 않고 name을 그대로 사용하기 때문에
다른 파일에 있는 c function도 사용 가능하다
mm.cpp
#include <stdio.h>
extern "C" int add(int x, int y, int z, int k);
int add(int x, int y)
{
int k = 0;
k = x + y;
return k;
}
int add(int x, int y, int z)
{
int k = 0;
k = x + y + z;
return k;
}
void main()
{
int a = 100, b = 20, c = 30, d = 10, e;
e = add(a,b);
e = add(a, b, c);
e = add(a, b, c, d);
}
mm2.c
int add(int x, int y, int z, int k)
{
int m;
m = x + y + z + k;
return m;
}
'Tech & IT > 프로그래밍' 카테고리의 다른 글
Deassembly 로 asm코드 확인하는 방법 (0) | 2009.12.10 |
---|---|
operator = 을 재구현할 때 참조형 반환타입을 선언할 후 있는 이유 (0) | 2009.12.10 |
C에서 C++로 진화하는 단계 밟아보기 (0) | 2009.12.10 |
Layer를 다루는 C프로그래밍으로 단계별 개선 (0) | 2009.12.10 |
C++에서 this에 대해 알아보자 (0) | 2009.12.10 |