|
안녕하세요 스페로 입니다..
정말 그러네요.. 아마도 VC는 함수의 주소를 찍는 듯 합니다..
그런데 이건 C++빌더 컴파일러가 더 정확한거 아닐까요?
함수의 주소를 출력하는거 보단 함수를 호출하지 못했다고 해야 하는게 정확한듯..
그래서 태스트로 C++빌더 콘솔에서 다음의 소스에서
printf("%d",&t.get_result); 이렇게 바꿔 봣습니다..
주소값을 찍어 보라고..
첨부한 그림은 위에게 C++빌더 콘솔 결과이고
밑에게 VS.NET에서 콘솔로 컴파일 한겁니다..
비스므리한 값
주소를 찍는게 분명합니다..
M$ VC컴파일러는 ()게 없으면 그냥 주소를 ...찍어 버리네요..
함수의 이름 자체가 함수의 주소라고 분명히 알고는 잇지만..
어떤게 오를까요?
이기 님이 쓰신 글 :
: #include<stdio.h>
:
: class man{
: public:
: int a,b;
: man( int c,int d ){ a = c; b = d; }
: int get_result();
: };
:
: int man::get_result(){
: return a+b;
: }
:
: void main( void ){
: man t(1,3);
: printf("%d",t.get_result());
: }
:
: 이런 소스가 있다고 하면요~
: main 에서 printf("%d",t.get_result()); 를...
: printf("%d",t.get_result);
: 이러케 해주면.. ..
: 볼렌드씨에선 당연히 에러가 발생하죠..^^;; 저런 함수는 없으니까...
:
: 근데.. 비쥬얼C++에선..-_-;; 경고하나 없이 바로 실행이 되고.. 저기에 쓰레기값이 찍히더군요..;;
: 이거 왜 이런지 아시는분 계세요??;; ;;;
:
:
|