1) C 언어는 한국어처럼 애매한 표현이 없습니다. Yes or No 로 나누어져 있습니다. OMR, 바코드와 같이 중간은 존재하지 않는다.
2) 컴퓨터는 정직하기 때문에, 잘못된 프로그램이란 것을 알아채지 못합니다. "정밀한 프로그램을 작성할 수 있는 프로그래머가 되겠다."라는 생각 필수!
3) 계산기로 계산할 수 없는 것은 프로그램으로도 만들 수 없다
4) C언어는 모든 사물과 현상을 숫자로 표현하는 프로그램 언어이다.
5) C프로그램은 1개의 main + 굉장히 많은 서브 루틴으로 이루어져있다.
=> 메인 루틴도 서브 루틴도 모두 함수로 정의된다!
6) 매번 같은 내용을 입력해야 할 때 사용하는 것이 바로 preprocessor이다. 전처리 기능이라 부른다.
ex ) stdio.h, math.h
=> 컴파일러가 일을 하기 전에 먼저 처리하는 프로그램 / 컴파일러는 전처리기의 처리 결과인 소스를 컴파일 한다
=> (1) 특정 부분에 특정 파일을 삽입 (#include)
(2) 특정 문자열을 특정 문자열로 치환 (#define)
(3) 조건에 맞춰 특정 행을 삭제하거나 삽입 (#ifdef #else #end)
전 처리가 된 후, 컴파일을 실행해야합니다. 컴파일은 컴퓨터가 이해할 수 있는 기계어로 번역한다는 의미이죠. 번역을 하기 전의 C 프로그램을 소스 프로그램 , 번역 된 기계어로 된 프로그램을 오브젝트 프로그램이라고 합니다!
7) 컴파일의 좁은 의미와 넓은 의미
=> 좁은 의미 : 소스 프로그램, 즉 번역 하기 전의 프로그램에서 어셈블리 언어로 된 프로그램을 만드는 처리
어셈블리 언어는 기계어로 가기 전 단계라고 보면 됩니다. 소스 프로그램 -> 어셈블리어 -> 기계어
이런 순으로 간다고 보면 될 것 같습니다.
= > 넓은 의미 : 오브젝트, 즉 기계어로 번역된 프로그램을 만드는데 필요한 프리 프로세스(전처리) 좁은 의미의 컴파일,
어셈블, 링크를 모두 포함한 의미입니다. 빌드라고도 부릅니다.
8) 링크 처리 : 기계어로 변환이 되어도 실행하기 위해서는 링크가 필요합니다. 만들어져 있는 라이브러리를 자신의 프
로그램에 추가해하는 것을 링크라고 합니다.
9) 크로스 컴파일 : 프로그램을 입력해서 컴파일을 하는 컴퓨터와 직접 실행되는 컴퓨터가 다른 경우가 있습니다. 이럴
경우, pc 및 워크 스테이션에서 프로그램 텍스트 작성 및 컴파일을 한 후, 해당 기기에 프로그램을 로
드한 후 실행해야 합니다.
10) 디버그 : 프로그램 내에서 버그가 있는 부분을 찾아내어 수정하는 작업을 디버그라고 합니다.
11) 처리계 의존 : 처리계란, C프로그램을 컴파일할 때 컴파일러 및 이용하는 라이브러리, 프로그램을 실행하는 하드웨어
의 모두를 가리키는 언어입니다. 처리계 의존은 프로그램을 컴파일 및 실행하는 컴파일러, 라이브러리,
하드웨어에 따라 처리 결과가 다르다는 의미입니다. 동일한 C 프로그램이라 해도 컴파일러나 하드웨
어가 다르며 동작이 달라질 수 있습니다.
'1:1 개발 공부' 카테고리의 다른 글
인터페이스 이해하기 (0) | 2022.05.28 |
---|---|
C 언어에 대한 기초 - C를 배우기 전에 알아야할 것들(2) (0) | 2022.02.20 |
병렬처리 정의, 코드와 주석의 관계, 클래스-생성자, 소멸자, 객체 초기화 (0) | 2022.02.06 |
프로그래밍 세계 - 사용자 코드와 구현 코드, 인터페이스, UIUX, (0) | 2022.01.30 |
객체와 인스턴스의 차이 / 라이브러리와 패키지의 차이 (0) | 2022.01.15 |