________C 수업____________________________________________________________________________
※ Global 변수 (전역변수) ※ stack영역에 만들어지는 변수중에 main() 함수에 만들어지는 지역변수는 메인함수가 종료할때까지 남아있음. ※ { int a; // 이런 변수는 4바이트를 확보하라는 명령어가 code영역에 들어감, 실제로 파일에 4바이트를 차지하고있지는 않다. } ※ static 변수는 파일이 만들어 질때 용량이 확보됨. ※ 메모리 영역별 속도차는 없음. ※ 전역변수는 아주 자주 접근해야하는 변수가 있을 경우만 쓰고 웬만하면 안쓰는게 좋음. ※ 여러함수에서 전역변수에 자주 접근을 하는 경우에 코딩이 꼬이는 경우가 있으므로 웬만하면 안쓰는게 좋음. ※ 전역변수 앞에 static을 쓰면 다른 파일에서 접근 불가함.
| ||||
static변수와 전역변수 TEST | ||||
#include <stdio.h> //전역 변수와 static 변수는 0으로 자동 초기화 됨. void test1(); int main() { test2(); return 0; }
void test2()
※ Data 영역과 BSS 영역에 달리 저장이 되는 것이 확인된다. | ||||
static과 extern TEST | ||||
---------- file A------------------------------------------ #include <stdio.h> void test (); int a; //전역 변수에 static 을 쓰면 외부파일에서 접근 못함.
printf("a : %d\n", a); test(); printf("a : %d\n", a); return 0;
extern int a; //extern을 붙이면 변수 a의 정의가 외부에 있다는 것을 알려주는것 //변수 a가 이 파일에서 다시 정의되는것은 아니다. 참조만 하는것 // 다른 파일에 있는 변수에 접근 가능 void test()
-------------------------------------------------------------- | ||||
13.1 열거형 | ||||
열거형 : 이름을 갖는 정수형의 상수를 정의하여 프로그램을 이해하기 쉽게 해줌. 예약어 > enum 형식 > enum type_name { sun, mon, tue, : } ※ type_name은 자료형의 이름이고 열거리스트 각원소는 값을 지정 해주지 않으면 0 에서 시작하는 정수 값을 가지고 있음 예> sum =0, mon = 1, tue = 2 ※ 각 원소들은 , 로 선언 | ||||
enum TEST | ||||
#include <stdio.h> enum SMART kkk, // 원소 값을 임의로 지정하지 않으면 위의 원소에 +1 됨, 1 jj = 300, //원소의 값을 임의로 지정할수 있음 , 300 int main() printf("%d\n", ii); return 0;
| ||||
__________________________________________________________________________________________
________ARM____________________________________________________________________________
main.c |
#include "project.h"
switch( Recv_char( )) case '2': case '3': return 0; } |
RELAY.h |
#ifndef _RELAY_H_ #define PIO_OER (*((volatile unsigned int *)0xFFFFF410)) #define RELAY_PIN 1
#endif //_RELAY_H_ |
RELAY.c |
#include "Relay.h" void RELAY_Init() PIO_SODR = (1<<RELAY_PIN); return; void RELAY_Toggle() // 릴레이 토글...PA 1번이 SET되어 있으면 clear시키고 , CLEAR 되어 있으면 set 함. if( 0 == uiState ) return; |
makefile (추가 된 내용만...) |
OBJS+= lowlevel.o \ rebuild: clean all sram: $(OBJS) flash: $(OBJS) main.o: main.c lowlevel.o: lowlevel.c LCD.o: LCD.c ADC.o: ADC.c DBGU.o: DBGU.c LED.o: LED.c Relay.o: Relay.c cstartup.o: cstartup.S clean: |
※ tolerant : 관대한
※ 5V-tolerant I/O : PIO는 3.3V 입출력이지만 5V까지는 괜찮다는것을 말해줌. (AT91SAM7S의 경우)
__________________________________________________________________________________________
________논리 회로____________________________________________________________________________
※ 가산기 실습
__________________________________________________________________________________________
'C++프로그래밍' 카테고리의 다른 글
2013.05.08_read_write() (0) | 2013.05.14 |
---|---|
2013.05.13_J-K플립플롭,T,D_열거형_공용체_조건문 (0) | 2013.05.13 |
2013.05.09_스택영역 발담기!_리다이렉션!_ (0) | 2013.05.09 |
2013.05.07_구조체입출력(2) (0) | 2013.05.07 |
2013.05.06_구조체입출력(1) (0) | 2013.05.06 |