reinterpret_cast 형변환?
글쓴이: nayana / 작성시간: 금, 2005/02/25 - 11:06오전
1 #include <iostream>
2
3 using std::cout;
4 using std::endl;
5
6 void func( void* v )
7 {
8 int i = reinterpret_cast< int >( v );
9 cout << i << endl;
10 }
11
12 int main ( void )
13 {
14 func( reinterpret_cast< void* >( 5 ) );
15
16 typedef void (* PFV )();
17 PFV pfunc = reinterpret_cast< PFV >( func );
18
19 pfunc();
20
21 return 0;
22 }
결과가
5
1
이 나옵니다. 5가 나온이유를 알겠는데...1은 어떻게 나오는거죠?
Forums:


우연히요. (농담 아닙니다.)이 코드는 정의되지 않은 행동을 유발하므
우연히요. (농담 아닙니다.)
이 코드는 정의되지 않은 행동을 유발하므로 어떠한 결과라도 나올 수 있습니다.
현재 FC3 에서 실행 하였습니다.버전은 gcc version 3.4
현재 FC3 에서 실행 하였습니다.
버전은 gcc version 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)
입니다. 여기에서 는 1이라는 결과가 나오고
vc++ 6.0 에서는 -1이라는 결과가 나옵니다.
어떠핳ㄴ 결과라도 나올수 있다는 얘기는 컴파일러마다 틀리다는 얘기 인가요 ? 아니면 실행할때마다 틀리다는 얘기 인가요?
컴파일러, 플랫폼, 심지어는 그날 운수에 따라 달라진다고 봐도 무방합니다
컴파일러, 플랫폼, 심지어는 그날 운수에 따라 달라진다고 봐도 무방합니다.
말 그대로 "정의되지 않"습니다.
넵...감사합니다.
넵...감사합니다.
댓글 달기