|
: 질문)
: 이런 short 나 unsinged int 나 star에 의미들이 메모리에 데이타
: 영역에 다 존재하나요? (변수에선언은 몽땅 데이타영역에존재?)
: yes no로 답변부탁!
no (yes/no로 답변 드리기 힘든 성격인듯하지만 굳이 결정하자면)
: 질문2)
: star=1+3 에서 star + 연산자는 프로그램 영역(코드)에
: 존재하고 특히 star는 아까 선언한 Star라는 변수명
: 주소값을가지고있나요?
yes
: 결론은 이런 c 문장들이 메모리에 어케 존재하나 그말이군요!!
: 코드부분/데이타부분 ....어럽네~요!!
그런대요.. 메모리에 프로그램이 어떻게 존재하는 지에 대한 걱정을 안하려고
프로그래밍 언어들이 개발되기 시작한거 잖아요..
특별히 컴파일러나 어셈블리같은 혹은 다른 관련사항들에 대해
배우시고자 관심을 가지시는 것인지는 모르겠지만
크게 걱정안하셔도 되는 부분인거 같은데..
특별히 포인터나 구조체의 메모리 영역 혹은 메모리 할당등의 문제에
있어서는 관심이 가지긴 하지만 님이 쓰신 글에서는 글쎄요..
처음 질문은 사실 똑 부러지게 말씀드리기 힘든 부분이 있습니다.
기본적으로 데이터 영역에는 메모리 주소와 그곳을 차지한 이진 데이터들뿐이거든요
그걸 어떤 식으로 해석하느냐는 컴파일러의 몫이죠. 그렇다고 데이터 형식에 붙는
한정사들의 의미를 다 컴파일러의 몫으로 돌릴 수는 없습니다. 흔한 예로 register같은 경우는
register와 같은 특별한 메모리 영역을 사용하게 되거든요.
이런 것들은 실상 어떤 플랫폼에서 어떤 컴파일러를 통해 수행되느냐에 의해 좌우가 많이 됩니다.
어셈블리 한 명령도 기계어로는 몇줄이상이 되는 경우가 있는데 c언어의 경우는 더 많이
늘어나겠죠..
고급언어에서는 실제 데이터의 구성보다는 언어를 구사하는 기법에 대한 고민이 더 필요할 것 같습니다....
그럼..
|