20160315-허도경-업무일지-전역/지역변수, 펌웨어 분석/실습
변수
1.전역변수: 함수 바깥에서 변수선언->Data영역
2.지역변수: 함수 내에서 변수선언->Stack영역(우리가 주로 쓰는 영역)
전역변수의 특성: 초기화되지 않으면 바이너리가 0:0으로 채워진다.
전역변수와 지역변수의 변수명이 겹칠경우 printf가 속해있는 공간에 있는 변수가 우선순위가 된다.
전역변수의 단점
1.변수관리가 어렵다.
2.프로그렘 종료될때 까지 메모리를 차지한다.(지역변수는 선언한곳을 벗어나면 메모리가 지워진다.)
3실행파일용량이 증가한다.
전역변수와 지역변수 의 형태
#include<stdio.h>
int A;->전역변수
int main()
{
int B;->지역변수
return 0
}
ex)
#include<stdio.h>
int D;
int E = 99;
int F;
int G = 98;
int H;
int main()
{
int A = 0;
int B;
int C = 100;
printf("A= %p\n",&A);
printf("B= %p\n",&B); //Stack 영역
printf("C= %p\n",&C);
printf("------------------------------------\n");
printf("E= %p\n",&E);
printf("G= %p\n",&G); //Data영역 (초기값O)
printf("------------------------------------\n");
printf("D= %p\n",&D);
printf("F= %p\n",&F);
printf("H= %p\n",&H); //Bss영역 (초기값X)
printf("------------------------------------\n");
printf("printf= %p\n",printf);
printf("main= %p\n",main);
return 0;
}
----------------------------------------------------------------------------------
헤더3종세트
#ifndef
#define
#endif