const int a = 10;
VC에서는 상수값 변경이 됩니다.
터보C 정복 책을 보면.
이 값을 바꿀 수 있었습니다.
방식을 까먹었네요. a = *(int*)20; 이런식으로 하면 되던데. 웹 컴파일러에서는 안되네요. ㅇ_ㅇ;;
웹컴파일러를 칭찬해야겠는걸요? C89 표준에서도 const 값은 못바꾸었을텐데 터보C가 구현상 허용했을 것 같고요. 웹 컴파일러는 어떤것인지는 모르겠지만 표준을 준수하여 구현되었나봅니다.
---http://coolengineer.com
캐스팅하면 뭐든 되죠. *(int*)&a = 20 이겠죠. 참고로 C++이면 const_cast(a) = 20 이라고 해도 되는데 주어진 구문에서 const int는 컴파일타임 상수라서 C++에서는 전부 상수로 치환되기 때문에 a값 찍어봐도 안바뀐걸로 나올겁니다. 별개 변수로 받아서 해야되죠.
undefined behavior...
딱히 의미있는 테크닉이 아닙니다.
웹컴파일러를 칭찬해야겠는걸요? C89 표준에서도
웹컴파일러를 칭찬해야겠는걸요? C89 표준에서도 const 값은 못바꾸었을텐데 터보C가 구현상 허용했을 것 같고요. 웹 컴파일러는 어떤것인지는 모르겠지만 표준을 준수하여 구현되었나봅니다.
---
http://coolengineer.com
캐스팅하면 뭐든 되죠. *(int*)&a = 20
캐스팅하면 뭐든 되죠. *(int*)&a = 20 이겠죠.
참고로 C++이면 const_cast(a) = 20 이라고 해도 되는데 주어진 구문에서 const int는 컴파일타임 상수라서 C++에서는 전부 상수로 치환되기 때문에 a값 찍어봐도 안바뀐걸로 나올겁니다.
별개 변수로 받아서 해야되죠.
undefined behavior... 딱히
undefined behavior...
딱히 의미있는 테크닉이 아닙니다.