IT

스택 : FILO함수 호출에 사용

큐 : FIFO

스택은 FFFFFFFF 에서 HEAP_END 까지 올라간다.

이렇게 되는 이유는 HEAP과 STACK을 어느 정도 사용할지 모르기 때문이다.

실행파일은 code,data,bss 만 가지고 있다.

Loader가 실행파일의 code,data,bss를 메모리로 복사하고 난 후

Code 영역의 0번지를 실행한다.(code영역의 0번지는 main문이다)

 

#include <stdio.h>

 

void test(int d, int e)

{

    int f=6;

    int g=7;

    printf("F=%p\n",&f);

    printf("G=%p\n",&g);

    printf("D=%p\n",&d);

    printf("E=%p\n",&e);

}

 

int main()

{

    int a=1;

    int b=2;

    int c=3;

    

    printf("A=%p\n",&a);

    printf("B=%p\n",&b);

    printf("C=%p\n",&c);

    test(4,5);

    

    return 0;

}

함수 호출 규약(cdecl, stdcall, fastcall)

함수 호출 규약이란 함수가 호출될 때
1. 인자의 전달방법은 어떻게 : 스택으로 이용할것인가? 레지스터를 이용할 것인가
2. 인자의 전달순서는 어떻게 : 오른쪽에서 왼쪽으로 전달할 것인가? 왼쪽에서 오른쪽으로 전달할 것인가?
3. 인자 전달에 이용된 스택의 해제는 어떻게 : 호출한 함수에서 해제할 것인가? 호출된 함수에서 해제할 것인가?
를 정해놓은 규약을 말합니다.

'소프트웨어 > C언어' 카테고리의 다른 글

문자열 메모리 영역, 고수준 입출력, 리다이렉션  (0) 2011.07.28
더블 포인터  (0) 2011.07.28
volatile  (0) 2011.06.30
구조체_컴파일러최적화  (0) 2011.06.21
Return  (0) 2011.06.21
Posted by sinpk