본문 바로가기
코스웨어/16년 스마트컨트롤러

20160315-허도경-업무일지-전역/지역변수, 펌웨어 분석/실습

by 알 수 없는 사용자 2016. 3. 17.
728x90
반응형

변수

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


728x90