변수와 상수는 다른것이다.
연산자는 사칙연산, 비트연산, 논리연산, 비교연산이 있다.
자료형은 char short int float double가 있다.
배열명은 배열의 시작주소를 의미한다.
&data[0] == data
배열명은 주소를 바꿀 수 없는 포인터 상수이다.
조건부 컴파일
1 | #if(0) |
2번로직이 실행된다.
C 라이브러리 모음
http://www.soen.kr/
LR 복귀주소를 저장(함수가 종료되고 다시 시작되어야할 주소)
LR들은 스택에 저장되게 되는데 최근 이동해야 할 곳을 가르키고 있는 포인터를 스택 포인터라함.
보통 스택이 4단계 이상 쌓이면 설계를 다시해보는것을 고려해 봐야 한다.
1 | int Add(int a) |
함수 명 Add가 함수의 시작주소이다.
ISR 인터럽트 서비스 루틴 - 특정인터럽트가 발생했을 때 처리해라.
폴링 인터럽트 둘다 이벤트가 발생했을 때 ISR로 가서 처리하고 메인으로 돌아온다.
폴링은 함수를 호출해야하고 인터럽트는 호출 없이 서비스 로직이 실행된다.
0 == false == off == 0v == clear == low
1 == true == on == 5v == set == high
워치독 타이머 : 컴퓨터의 오작동을 탐지하고 복구하기 위해 쓰이는 전자 타이머이다. 정상 작동 중의 컴퓨터는 시간이 경과하거나 “타임아웃”이 되는 것을 막기 위해, 정기적으로 워치독 타이머를 재가동 시킨다.(내부적으로 소프트웨어를 리셋시키는 타이머)
지역변수 - 해당 함수안에서만 접근, 해당함수 시작과 동시에 메모리에 올라갔다 함수 종료시 소멸된다.
지역변수는 m_를 붙여서 처리하기도 한다.
call by value - 복사대입에 의한 호출
call by address (pointer) - 포인터를 이용하여 호출
call by reference - 참조자를 이용하는것
모든 포인터 변수는 32비트 시스템에서 4바이트로 동일하다