programing

C vs C++ 사이즈의

stoneblock 2023. 9. 26. 21:56

C vs C++ 사이즈의

방금 이 간단한 코드 조각을 발견했는데 왜 이 프로그램이 C 컴파일러에 의해 컴파일되었을 때 출력이 되는지 궁금합니다.4C++로 컴파일되면 다음과 같습니다.8.

#include <stdio.h>

int x;

int main(){
    struct x {int a; int b;};
    printf("%d", sizeof(x));
    return 0;
}

C++ 출력이 합리적임 (8 = 4 + 4 = sizeof(x.a) + sizeof(x.b)), 하지만 C의 출력은 그렇지 않습니다.그럼 어떻게?sizeofC에서 일한다고요?

  • C : https://ideone.com/zj5Qd2
  • C++ : https://ideone.com/ZZ4v6S

C는 지역 변수보다 전역 변수를 선호하는 것 같습니다.맞아요?

C에서, 다음과 같은 구조 정의.struct x { int a; int b; };유형을 정의하지 않음x, 유형을 정의합니다.struct x. 그래서 만약에 제거를.int x;global, C 버전이 컴파일되지 않는 것을 알게 될 것입니다.

언급URL : https://stackoverflow.com/questions/34663335/c-vs-c-sizeof