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 extern "C" int add(int x, int y, int z, int k); int add(int x, int y) { int k = 0; ..