본문 바로가기

분류 전체보기11

C언어 <stdint.h> 란? stdint.h를 사용하는 이유 stdint.h는 c99 표준 라이브러리의 헤더파일입니다. 이번엔 stdint.h 가 무엇이며 왜 사용하는가에 대해 알아보겠습니다. stdint.h는 코드 이식성을 고려할때 때문에 사용합니다. 차근차근 알아봅시다. 일반적으로 C언어에서 흔히 사용되는 int 혹은 long 데이터 타입은 이식성 문제를 일으킬 수 있습니다. 그 이유는 int 나 long 타입 변수는 C언어 표준에 정의되어 있지않습니다. 그럼 어떻게 인식되냐? 라고 물으시면 이것은 컴파일러에 달려있습니다. 컴파일러 설계자는 타겟 플랫폼 하드웨어 기능에 따라 이 int나 long같은 타입 변수의 용량을 선택할 수 있습니다. 예를 들어, XC8 컴파일러에서는 signed int를 2bytes라고 지정하고 있습니다. 그 이유는 PIC 8-bit 마.. 2023. 2. 8.
c언어/c++ 컴파일 과정, 빌드 과정, 링커(Linker) 컴퓨터는 저희 개발자들이 사용하는 고급언어(C, C++, Java, Python 등)를 이해하지 못합니다. 몇 단계의 과정을 통해 컴퓨터가 알아들을 수 있는 0과 1의 저급 언어로 변환해줘야 합니다. 그래서 이번에는 이 빌딩 과정을 알아보려 합니다. 1. 전처리 (Preprocess) #include int main(){ printf("Hello world"); return 0; } 위의 코드로 작성 된 hello.c 라는 소스 코드 파일이 있다고 합시다. hello.c 파일이 전처리 과정을 거칠 때 주석을 제거하고 #으로 시작되는 명령어들을 처리합니다. 예를들어 #include, #define ~ 같은 코드들을 처리하는 것이죠. 전처리 과정이 끝난 후엔 hello.i 라는 파일이 생성됩니다. gcc 에.. 2023. 2. 8.
임베디드 시스템(Embedded system)의 이해 임베디드 시스템의 정의 특정한 작업을 수행하기 위한 하드웨어와 소프트웨어로 조합된 장치 내 내장형 전자시스템입니다. 장치 내에 존재하기 때문에 내장형(Embedded) 시스템이라고 합니다. 임베디드 시스템의 응용 분야는 전자레인지, 밥솥, 냉장고를 비롯한 가전제품 그리고 차량 및 항공기에 이르기까지 정말정말 많은 분야에서 사용됩니다. 좀 더 이해하기 쉽게 알아보기 위해 컴퓨터와 한번 비교해보겠습니다. 임베디드 시스템 범용 컴퓨터 시스템 CPU 성능 저사양 고사양 사용 목적 특정 한 가지 목적 다양함 요구 사항 소형화, 저전력, 경량화 등 - 개발 환경 크로스 개발 PC 환경 주변 장치 제한적 마우스, 모니터, 스피커 등 다양함 운영 체제 Linux, RTOS, 경우에 따라 없을 수도 Windows, Li.. 2023. 2. 6.