0: 36부분에서요..
173
작성한 질문수 3
"function은 처음에 프로그램과 함께 로딩이되고 메모리에 계속 있다 function포인터로 주소를 찍을 수 있다 " 라고 말씀하셨는데
함수는 스택에 psuh되고 pop되면서 사라지는 거 아닌가요?
함수는 그때그때 필요할 때마다 스택에 생겼다가 사라질 것 같은데 메모리에 계속 남아있다는 게 무슨 뜻인지 궁금합니다.
메모리에 남아있다면 메모리 어느영역에 남아 있는 건지도 궁금합니다.
컴파일 할때 컴파일러가 함수를 호출할 주소와 그 함수에서 사용될 메모리사이즈를 미리 계산해놓은 다음에 사용할 함수들의 주소를 데이터영역에 미리 저장해놓고(이때 주소값 자체는 스택영역) 함수를 호출할때 데이터영역에 있는 함수호출주소를 보고 함수호출 주소로 찾아가서(스택으로 찾아가서) 함수를 push하고 pop한다.
라고 생각해봤습니다.
답변 1
1
안녕하세요?
이 부분은 충분히 궁금할 수도 있는 부분이라고도 생각됩니다 하지만... 지금은 설명드리기 어려운 부분이 좀 있군요.
컴퓨터구조에 대해서 배우면서 아마 이해하시게 될 것이니 그 때 배우셔도 늦지 않다는 생각이 듭니다. 너무 궁금하시다면 Daivd A Patterson, Computer Organization and Design, 5th ed. 를 통해서면 아마 생각하실 수 있을겁니다.
메모리의 영역.. 대해서는 main함수에 대해서도 생각해보시면 좋을 것 같군요. 앞의 질문도 어쩌면 이 부분에서 해결되는 것일지도 모르겠습니다. 이 부분은 14.21 강의에서 다뤄지네요.
컴파일 할때... 에 대해서도 답변은 첫 답변과 동일합니다.
Export template 안됨
1
9
2
완전히 똑같이 따라해도 exe파일이 안만들어져서 실행이 안됩니다.
1
53
3
main 함수에서 왜 int만 선언이 되는걸까요
1
56
2
8비트 2진수 변환시 왜 1을 더해야하나요?
1
54
2
혹시 강의를 빠르게 수강하려면 어디서부터 듣는게 좋을까요?
1
49
1
프로토타입과 함수간의 인자 불일치
1
73
2
12.12 헤더 관련 질문
1
60
2
Visual Studio Community 2026 사용 문의
1
137
2
Q. 15:30, 부호가 있는 8비트 정수 질문
1
60
2
getchar(), putchar()
1
93
3
강의자리ㅛ
1
79
2
비주얼스튜디오코드로 공부해도 상관없나요?
1
112
2
소스파일안에 여러 파일
1
75
2
F5와 F7의 차이
1
76
2
c = TWO * (a+b); 에서 a와 b는?
1
58
2
; 세미콜론을 붙이는 기준에 문의
1
68
1
Step over 기능 문의
1
53
2
2.6 강의 따옴표 출력 규칙 문의
1
74
2
int main 함수 관련 오류 문의
1
67
2
13.4 words[0]
0
60
2
11.7 함수를 구현해 봤습니다.
1
62
2
11.6 직접 strcmp와 strncmp를 구현해 보았습니다.
1
64
2
11.6 my_strcat과 my_strncat을 구현해봤습니다.
1
53
2
11.6 fit_str함수를 구현해 봤습니다.
1
53
2





