기본적인 프로그래밍은
1. sequence 순차
2. condition 조건
3. reputation 반복
으로 이루어진다.
실행파일이 만들어지고 메모리 상에 적재가 되면서
stack 부분에서는 함수- 그에 따른 파라미터 값들이 들어가게되고
heap 부분에서는 동적으로 할당되는 값들이
global 부분에서는 전역변수가
constraints 부분에서는 상수가
code 부분에서는 전체 코드가 적재
예를 들어 살펴보자면 다음과 같다.
<stack>
int *b;
b = (int *)malloc(sizeof(int));
*b=3;
printing(int x = *b)
printf("x is %d\n", x=*b);
free(b);
a= 10;
printing(int x = a)
printf("x is %d\n", x=a);
|
<heap>
b = (int *)malloc(sizeof(int));
free(b);
|
<global>
int a;
a= 10;
char msg[] = “test”;
|
<constraints>
char msg[] = “test”;
|
<code>
#include <stdio.h>
#include <stdlib.h>
int a;
void printing(int x);
char msg[] = “test”;
int main(){
int *b;
b = (int *)malloc(sizeof(int));
*b=3;
printing(*b);
free(b);
a= 10;
printing(a);
return 0;
}
void printing(int x){
printf("x is %d\n", x);
}
|
Q. Constraints 안에선 어떻게 지역/전역 변수를 구분하는걸까?
A. 만약 그 변수가 지역이면 Constraints안에서 한 번 선언하고 그 변수를 복사해서 지역 혹은 전역 변수 공간에도 선언해준다.
댓글 없음:
댓글 쓰기