inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

독하게 시작하는 C 프로그래밍

포인터 변수 기본 문법

64비트 int형 크기

해결된 질문

422

인프런 수강

작성한 질문수 3

0

안녕하세요.

매번 좋은 강의 감사드립니다.

int형 자료형의 경우 32비트에서 4바이트, 64비트에서는 8바이트로 알고 있는데

강사님 영상에서 실습 진행시 int nData = 10; 의 코드를 디버깅하게 되면 메모리에 0a 00 00 00 으로 총 4바이트 공간을 할당하는 같은데, x64으로 설정하셨음에도 4바이트 처럼 보이는 이유가 있을까요?

13:31초 부근

c 컴퓨터-구조 assembly-language vc++

답변 2

0

널널한 개발자

32비트, 64비트 환경에서 크기가 달라지는 형식은 포인터 입니다. int는 플랫폼이 몇 비트 형식을 사용하는 것과 무관한 형식입니다. 그러므로 x64 환경이라 하더라도 Windows OS 및 Visual studio를 사용해 C코드를 작성하고 있다면 int는 무조건 4바이트 입니다. 참고하시기 바랍니다. 😄

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.
인프런 수강님, 질문 주셔서 감사합니다.

C 프로그래밍에서 int 자료형의 크기는 컴파일러와 플랫폼에 따라 달라질 수 있습니다. 일반적으로 32비트 및 64비트 시스템에서는 int 자료형의 크기가 4바이트로 동일하게 유지되는 경우가 많습니다. 이러한 이유로 64비트 플랫폼에서도 int가 4바이트로 보일 수 있습니다.
플랫폼의 데이터 모델에 따라 int의 크기가 달라질 수 있는데, 대부분의 64비트 운영체제는 이를 LP64나 LLP64 모델을 채택하고 있어 int는 4바이트로 유지됩니다.

따라서, 강의에서 사용한 컴파일러/환경에서 int가 4바이트로 설정되어 있을 가능성이 높습니다. 64비트를 위한 다른 데이터 유형인 long이나 long long을 사용하면 8바이트로 사용할 수 있으니 필요에 따라 이러한 데이터 타입을 선택하실 수 있습니다.

참고로 강의와 관련하여 더 궁금하신 점이 있으시면, 강사님께 직접 문의하시거나 아래 링크를 통해 문의하실 수 있습니다.
감사합니다.

수강 문의

scanf("%d\n") 의미

0

19

1

주소 연산자(&) 간접 지정자(*) 반대 개념

0

32

1

Virtual Memory, Memory, Memory mapping tables

0

50

1

샘플코드 출력 오류 발생 질문드립니다

0

62

2

값의 교환에 사용되는 변수의 위치.

0

87

2

메모리 비교에 관한 질문

0

80

2

문자열 Null

0

62

1

C, C++

0

87

2

문자열 입출력 코드 에러

0

60

2

선생님! 120화 2분 50초 질문입니다.

0

66

1

caller 가 메모리 할당 해제를 할 때의 문제점 질문

0

63

2

단축키 맞는지 여부 문의드립니다.

0

59

2

문자열을 사용하는 이중 포인터에 대하여 질문합니다

0

65

1

char 포인터 변수의 크기에 대하여 제가 이해한 것이 맞을까요

0

78

2

용어 설명 필요

0

56

2

stdin, stdout

0

70

2

필수 실습 (최댓값을 반환하는 함수)

0

92

2

아......ㅠㅠ

0

99

2

버퍼 내 엔터

0

71

1

2진수 뺄셈에서 carry-out

0

111

2

union 식별자는 실무에서 보통 어디에서 사용하나요?

0

79

2

필수실습문제 공부법 (진도 vs 복습)

0

103

2

예제파일 다운로드

0

78

2

Visial Studio Code 를 설치해서 사용해도 수업을 따라가는데 지장이 있나요?

0

118

3