OS/Concept2012. 8. 16. 15:35

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
Posted by slimV