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
'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 |