C와 C++ 모두에서 돌아가는 소스가 다른 결과를 낼 수 있나요?

C랑 C++은 다른 언어잖아요. 모든 C코드가 C++에서 돌아가지도 않구요

그러면 C랑 C++ 모두 돌아가는 소스 중에 서로 다른 결과를 내는 코드가 있을까요?

전처리기나 type limit 관련된거는 제외하고, 버전따라 다른거라면 어떤 버전에서는 되고 안되는지도 가르쳐주세요!

1답변

  • 좋아요

    0

    싫어요
    채택취소하기

    다음 코드는 C와 C++모두에서 실행되지만 다른 결과를 냅니다. int i = sizeof('a'); c에서는 4이고 c++에서는 1이에요

    또 다른걸로는

    #include <stdio.h>
    
    int  sz = 80;
    
    int main(void)
    {
        struct sz { char c; };
    
        int val = sizeof(sz);
        printf("%d\n", val);
        return 0;
    }
    

    c에서는 sizeof(int)이고 c++에서는 sizeof(struct sz)입니다.

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.