일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- react native 타입스크립트
- html
- GitHub
- unity stencil buffer
- 리액트 네이티브 설치 오류
- 리액트 네이티브 맥
- 스탠실 버퍼 튜토리얼
- react native typescript navigation
- react native typescript
- 스탠실 버퍼 사용
- react native accessible
- 싸이월드
- Expo
- react native typescript navigate
- react native mac
- C++
- c++ 정보은닉
- 벡터와 리스트의 차이
- javascript
- react native ios 기기 연결
- react
- stencil buffer
- node
- c++ using
- node.js
- react-native
- CSS
- 스탠실 버퍼 시작
- cyworld
- react native
- Today
- Total
혀니의 이거저거 뿌시기
name mangling 본문
extern C , 맹글링(function name mangling) : 네이버 블로그 (naver.com)
extern C , 맹글링(function name mangling)
[C++]extern C카테고리 : C++ 2007/03/20 00:01 C++ 프로그램내에서 C함수 ...
blog.naver.com
c++는 오버라이딩을 허용하기 때문에 함수 이름이 겹칠 수 있어
컴파일러가 임의로 함수나 변수의 이름을 변경하는 것
컴파일러마다 다른 맹글링규칙을 가지고 있음
필요성 ) C++는 C를 포함함.
그런데 만약 C 컴파일러로 컴파일된 오브젝트 파일이나 라이브러리만 C++에서 써야한다면
C함수를 사용하고자 한다면 그 함수의 원형을 C++ 코드에 선언시켜주고 C오브젝트 파일이나 라이브러리와 링크시켜서 C함수 정의 문제를 해결해줘야함!
C함수에 대해 맹글링이 일어나지 않도록 하려면?
extern "C"
{
#include "swap.h"
}
[extern "C"의 의미]
extern "C"문장은 맹글링을 하지 말라는 지시문이다.
그렇다면 C의 표준 라이브러리 함수, 예를 들어 printf()를 사용할 때도 extern "C"문장을 항상 적용해야 하는가?
만약, 함수 원형을 개별적으로 선언하고 사용하려면 적용해야 한다.
1 // printf.cpp
2
3 extern "C" int printf( const char *... ) ;
4
5 void main()
6 {
7 printf( "야!" ) ;
8 }
'CS > C++' 카테고리의 다른 글
다형성 (0) | 2024.01.09 |
---|---|
static 변수 (0) | 2024.01.05 |
이동 의미론 ( move semantics) (0) | 2023.12.14 |
L value 와 R value (0) | 2023.12.14 |
얕은복사 / 깊은복사 (0) | 2023.12.14 |