Stack에 변수가 저장되는 방식
위의 코드상에서 보여지는 변수 입력 순서는 1, 2, 3, 4, 5입니다.
하지만 gdb로 stack을 보면 1, 2, 5, 4, 3 순으로 들어간 것을 확인할 수 있습니다.
컴퓨터가 stack에 변수를 집어넣는 방식을 나열하자면
1. 'int a = 1'을 통해 stack에 4-byte를 확보하고 1을 입력
2. 'int b = 2'를 통해 stack에 4-byte를 확보하고 2를 입력
3. 'int c[] = {3, 4, 5}'를 통해 12-byte를 확보하고 낮은 주소에서부터 차례로 3, 4, 5를 입력
Low addr
3 |
┐ |
4 | c[] |
5 |
┘ |
2 | b |
1 | a |
High addr
'OS > Concept' 카테고리의 다른 글
Copy On Write (0) | 2012.11.15 |
---|---|
Stack frame (0) | 2012.08.26 |
CPU register (0) | 2012.08.18 |
Little endian (0) | 2012.08.16 |