[왕초보 임베디드-C 공부 일기] 1. 변수 선언과 할당

1. 변수의 선언


     C언어에서 변수의 선언은 컴파일러(컴퓨터)에게 다음 세 가지 정보를 알려주는 행위이다.
     1)데이터의 크기(자료형, Type) : "얼마나 큰 공간이 필요한가?" (정수, 문자, 실수)
     2)데이터의 이름(변수명, Name) : "그 공간에 붙일 라벨의 이름은 무엇인가?" (name, speed, a...)
     3)데이터의 할당(Allocation) : "RAM의 특정 주소를 이 변수 전용으로 할당해라."

-선언 공식                                                    [자료형] [변수이름] ;
                                                            int a; 

2. 메모리(RAM) 내부에서 일어나는 일


     1단계(컴퓨터에서 컴파일러 gcc가 하는 일) -> 컴파일(complie)

     2단계(실행보드 STM32F446RE가 하는 일) -> 런/작동(Run)


변수에 값이 할당되어있지 않고, 선언만 된 경우에는 여기에서 종료된다. 


3. 변수의 할당

   
    변수에 값이 할당된 경우에는 실행 파일 내에서 초기값에 해당하는 섹션에 값이 저장되고, 이 깂을 디버거가 작업 지시서와 함께 플래시 메모리에 저장한 뒤에 CPU가 값을 꺼내서 RAM의 지정된 주소에 복사한다. 

+위 내용은 main함수 바깥에 있는 전역 변수나 static변수에만 해당된다. 
++main함수 내 지역 변수는 실행 파일 내 작업 지시서에 해당하는 섹션에 같이 저장되어 플래시 메모리에 있는 상태 그대로 CPU가 읽어 실행한다.
(RAM으로 복사되지 않음)


참고한 강의 :
Coursera - Introductory C Programming - Course 1(Duke University)
Udemy - Microcontroller Embedded C Programming: Absolute Beginners(FastBit Embedded Brain Academy)

이외에 공부 중 궁금했거나 찾아봐야 했던 정보는 Gemini질문으로 해결하였습니다. 혹시 틀리거나 부족한 부분은 댓글로 말씀하시면 수정하겠습니다.