UNIX 운영체제를 개발하기 위해 개발한 범용 언어
고 수준 언어(인간 중심의 언어로 만들어진 언어)
K&R 표준 문법 사용 (Brian Kernighan, Dennis Ritches가 발표한 언어)
UNIX 운영체제 뿐만 아니라 다양한 분야에서 사용되고 있음
고 수준 언어이기 때문에 배우기 쉬움
조화된 언어: 정해져있는 문법
효율적
하드웨어 컨트롤 가능, OS와의 직접 통신등의 저 수준 활동을 처리할 수 있음
다양한 컴퓨터 플랫폼에서 컴파일 가능
(*컴파일: 개발자가 만들어낸 프로그램 코드를 컴퓨터가 인식할 수 있는 코드로 변환하는 과정)
속도가 매우 빠름
최초에 시스템 개발 작업, 운영체제 구성하는 프로그램 개발에 사용
하드웨어와 관련된 작업, 메모리를 직접 관리하는 작업 등 OS와 하드웨어를 직접 컨트롤 할 수 있게 설계
어셈블리 언어(기계어)로 작성된 코드와 거의 비슷한 속도로 실행되는 코드를 생성
많은 언어들이 C언어의 문법을 승계하였음
(많은 언어의 기본이 되는 언어)
개발자가 작성된 프로그램을 OS별로 결과물을 만들기 때문에 OS에 최적화된 소프트웨어를 개발할 수 있음
(단점: OS 별로 작업을 따로 해야함)
C언어 자체에 대한 라이선스 규칙이 존재하지 않음
(같은 C언어를 사용해도 개발 분야마다 차이가 있음)
메모리 관리 등은 개발자가 직접해야 함
전처리 → 컴파일 → 링크 → 실행파일
소스코드 (.c):
개발자가 작업하고 코드를 작성하는 파일
인간 중심의 파일 (컴퓨터 인식 X)
C언어 문법에 맞춰 프로그램 코드 작성
전처리기:
컴파일러가 인식할 수 있는 코드로 만들어주는 역할
최종 실행파일을 만들 때 작성한 코드 중 변환할 코드를 제어함
전처리 명령어는 개발자가 만든 코드를 컴파일하기 전에 먼저 처리하는 명령어로써 코드를 완성하는 과정이됨
컴파일(.obj, .o):
기계가 인식할 수 있는 코드로 변환 (목적파일)
(컴파일러의 역할)
링크(.exe):
컴파일된 코드에 해당 OS에 필요한 코드들을 더해 실행파일로 만들어짐
(링커의 역할)
전처리 명령어, 함수, 변수, 구문과 식, 주석으로 구성
소프트캠퍼스, 처음 시작하는 C언어, 구름EDU, URL, 2021년 8월 23일 수강