C vs C++ 사이즈의
방금 이 간단한 코드 조각을 발견했는데 왜 이 프로그램이 C 컴파일러에 의해 컴파일되었을 때 출력이 되는지 궁금합니다.4
C++로 컴파일되면 다음과 같습니다.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의 출력은 그렇지 않습니다.그럼 어떻게?sizeof
C에서 일한다고요?
- 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
'programing' 카테고리의 다른 글
Laravel 마이그레이션 기본(또는 키) "식별자 이름이 너무 깁니다." (0) | 2023.09.26 |
---|---|
MySQL의 다른 일부 열과 함께 고유 열 선택 (0) | 2023.09.26 |
메모리의 지정된 절대 주소에 변수를 배치하는 방법(GCC 사용) (0) | 2023.09.21 |
마운트가 거부되었습니다.... 경로는 OS X에서 공유되지 않으며 도커에서 알 수 없습니다. (0) | 2023.09.21 |
C 프로그래밍 및 TDD (0) | 2023.09.21 |