On this page
article
C++ Casting
C 캐스팅의 문
- C/C++ 차이
- C: void*의 암시적 변환 허용
- C++: 비허용
- C/C++언어의 캐스팅
- C: int*
- C++: static_cast<int*>
- 사용 이유
C 언어 캐스팅의 단점
- 명시적 캐스팅이 실수인지 의도인지 구분 불가
int n = 0; double* p1 = (double*)&n; *p1 = 3.4; -> 8byte write const int c = 10; int* p2 = (int*)&c;
개선
- 용도별 다른 4가지 캐스팅 연산자 제공
C++ explicit casting
const_cast
- 상수성과 volatile 제거
const int c = 10; volatile int v = 20; int *p1 = const_cast<int*>(&c);
const int c를 char*에 담기
const int c = 10; char* p1 = reinterpet_cast<char*>(const_cast<int*>(&c));