스택 : 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 |