변수
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
'코스웨어 > 16년 스마트컨트롤러' 카테고리의 다른 글
아두이노 시계 (2) | 2016.03.17 |
---|---|
20160317-조재찬-업무일지-펌웨어(타이머 카운터) (0) | 2016.03.17 |
20160317-이보원 업무일지 펌웨어 ATMega2560(타미머) (2) | 2016.03.17 |
20160317_장진웅_업무일지_펌웨어 실습(타이머카운터) (1) | 2016.03.17 |
타이머 카운터 소스 (0) | 2016.03.17 |
20160316_양준우_펌웨어실습_LCD (1) | 2016.03.17 |
20160315_양준우_펌웨어실습_DK128_interrupt2 (0) | 2016.03.17 |
TC0 (0) | 2016.03.17 |