본문 바로가기

전체 글89

extern 구조체 또는 변수 사용법 및 예시 분할 컴파일 : 하나의 프로그램을 여러 개의 .c, .h 파일로 분할하여 작성분할 컴파일 시 다른 파일에 선언된 전역 변수를 사용할 떄는 extern 선언을 사용-> extern 선언 변수는 "다른 파일에 해당 변수명이 전역 변수 선언되어 있으니 공유하여 사용하겠다" 1. 변수형식  : extern 자료형 변수명 사용법1) .c 파일에서 extern 선언ex) exam2.c, exam3.c 에서 exam1.c의 전역변수 total을 사용하고 한다. exam1.cexam1.c에 아래와 같이 정의한다.int total=0; //전역 변수 선언main() {...}exam2.cexam2.c에 아래와 같이 정의한다.extern int total //extern 변수 선언, 다른 .c 파일에 전역 선언된 변수 접.. 2024. 5. 8.
static 정적 변수 사용 형식static 변수명static 반환형 함수명 static 변수는 매개변수로 사용할수 없다. 1. 정적 지역 변수- 선언위치 : 코드 블록 내부- 사용 범위 : 선언 ~ 선언한 블록 끝- 메모리 저장 위치 : Data 영역(해당 영역에는 static 변수와 전역 변수가 저장됨)- 메모리 존재 기간 : 프로그램 시작~ 종료 - 자동 초기화 : 0으로 초기화* 정적 지역 변수  선언된 블록 안에서만 사용하는 전역 변수와 같다.그러나 코드 블록 내부에서만 접근 가능하다 #includevoid static_func(void);int main(){ int i; for(i=0;i 위 코드 출력 결과 123 2.정적 전역 변수선언 위치 : 함수 외부사용 범위 : 하나의 파일 내부 메모리 저장 위치.. 2024. 5. 7.
삼항 연산자 아래 글은 코딩 도장 사이트를 참고하여 작성하였습니다. 삼항연산자는 if/문을 간결하게 사용하기 위해 사용한다.여기서 삼항 연산자는 ?와 : 를 말한다.1)사용 형식- (참과 거짓을  판단할 변수 )  ? (참일때 사용할 값) : (거짓일 때 사용할 값);  #include int main(){ int num1 = 5; int num2; //아래가 삼항연산자 num2 = num1 ? 100 : 200; //num1이 참이면 num2에 100을 할당, 거짓이면 num2에 200 할당 return 0;} - (참과 거짓을  판단할 조건식 )  ? (참일때 사용할 값) : (거짓일 때 사용할 값); #include int main(){ int num1 = 10; in.. 2024. 5. 6.
[1]GPIO 입출력 레지스터 직접 제어 출력 레지스터 제어 전 먼저 설정해야 할 것이 있다.- 해당 핀 클럭 소스 선택 HSI or HSE- 타입(풀다운 또는 풀업) ->  GPIOx_OTYPER , GPIOx_PUPDR - 클럭 스피드 지정 -> GPIOx_OSPEEDR- 모드 지정 -> GPIOx_MODER GPIO 출력 설정 레지스터 순서1. GPIOX_CRL - configuration register2. GPIOX_CRH - configuration register3. GPIOX_ODR - data output register4. GPIOX_BSRR - set/reset register5. GPIOX_BRR - reset register 1. Enable GPIOX clock2. Set the PIN as output3. Config.. 2024. 5. 2.