C언어
소개
-
UNIX 운영체제를 개발하기 위해 개발한 범용 언어
-
고 수준 언어(인간 중심의 언어로 만들어진 언어)
-
K&R 표준 문법 사용 (Brian Kernighan, Dennis Ritches가 발표한 언어)
-
UNIX 운영체제 뿐만 아니라 다양한 분야에서 사용되고 있음
특징
-
고 수준 언어이기 때문에 배우기 쉬움
-
조화된 언어: 정해져있는 문법
-
효율적
-
하드웨어 컨트롤 가능, OS와의 직접 통신등의 저 수준 활동을 처리할 수 있음
-
다양한 컴퓨터 플랫폼에서 컴파일 가능
(*컴파일: 개발자가 만들어낸 프로그램 코드를 컴퓨터가 인식할 수 있는 코드로 변환하는 과정)
-
속도가 매우 빠름
C언어를 사용하는 이유
-
최초에 시스템 개발 작업, 운영체제 구성하는 프로그램 개발에 사용
-
하드웨어와 관련된 작업, 메모리를 직접 관리하는 작업 등 OS와 하드웨어를 직접 컨트롤 할 수 있게 설계
-
어셈블리 언어(기계어)로 작성된 코드와 거의 비슷한 속도로 실행되는 코드를 생성
다른 언어와의 차이
-
많은 언어들이 C언어의 문법을 승계하였음
(많은 언어의 기본이 되는 언어)
-
개발자가 작성된 프로그램을 OS별로 결과물을 만들기 때문에 OS에 최적화된 소프트웨어를 개발할 수 있음
(단점: OS 별로 작업을 따로 해야함)
-
C언어 자체에 대한 라이선스 규칙이 존재하지 않음
(같은 C언어를 사용해도 개발 분야마다 차이가 있음)
-
메모리 관리 등은 개발자가 직접해야 함
개발환경
필수 프로그램
- C언어 프로그램을 개발하기 위해서는 컴파일러와 개발도구를 설치해야함
- 컴파일러: 개발자가 작성한 프로그램 코드를 컴퓨터가 인식할 수 있는 코드로 만들어 주는 소프트웨어.
- 컴파일러는 개발하는 분야마다 상이하기 때문에 컴파일러의 종류와 환결 설정 방식을 확인하여야 함
편집 도구
- 문서편집 도구:
텍스트 문서를 편집할 수 있는 소프트웨어
대표적인 프로그램: Visual Studio, Dev C++, Boland C, Turbo C
- Dev C++:
C,C++ 소프트웨어 개발을 위한 무료 공개 프로그램.
다른 프로그램에 비해 가벼움
프로그램 구조
전처리 → 컴파일 → 링크 → 실행파일
-
소스코드 (.c):
개발자가 작업하고 코드를 작성하는 파일
인간 중심의 파일 (컴퓨터 인식 X)
C언어 문법에 맞춰 프로그램 코드 작성
-
전처리기:
컴파일러가 인식할 수 있는 코드로 만들어주는 역할
최종 실행파일을 만들 때 작성한 코드 중 변환할 코드를 제어함
전처리 명령어는 개발자가 만든 코드를 컴파일하기 전에 먼저 처리하는 명령어로써 코드를 완성하는 과정이됨
-
컴파일(.obj, .o):
기계가 인식할 수 있는 코드로 변환 (목적파일)
(컴파일러의 역할)
-
링크(.exe):
컴파일된 코드에 해당 OS에 필요한 코드들을 더해 실행파일로 만들어짐
(링커의 역할)
c언어의 코드 구조
전처리 명령어, 함수, 변수, 구문과 식, 주석으로 구성
- 전처리 명령어
- 전처리기에 의해 처리되는 명령어.
- #define, #ifdef 등의 명령어를 제공. 이러한 명령어를 이용해 컴파일 하기 전 실행.
- 전처리 명령어를 이용해 개발자는 프로그램 코드를 선택적으로 생성할 수 있어 다양한 기법에 활용
- 함수
- 개발자가 자주 사용하는 코드를 하나의 블럭으로 묶어 필요할 때 사용
- 다른 언어에서는 메서드라 칭함.
- 자주 사용하는 코드를 매번 작성하게 되면 관리 및 유지 보수가 힘들어지기 때문에 자주 사용하는 코드는 한번만 작성하여 사용하는 방식.
- 개발의 용이성과 생산성 향상에 도움.
- 변수
- 프로그램 실행에 필요한 데이터(문자열, 값 등)을 보관하는 기억장소.
- 프로그램 실행에 필요한 데이터를 지속적으로 사용하기 위해서는 기억장소에 저장해야하는데 이 때 사용하는 것이 변수.
- 변수를 만들어 값을 기억시킨 후 필요할 때 가져다 사용할 수 있으며, 다른 값으로 대체해서 사용 가능.
- 구문과 식
- 개발자가 결과를 얻기 위해 만들어내는 프로그램 코드와 식.
- 개발자는 최종 결과를 얻기까지의 과정을 프로그래밍 언어로 작성해야 함.
- 컴퓨터는 개발자가 만든 작업 순서대로 작업하여 결과를 돌려줌.
- 프로그램을 개발한다는 것을 프로그램 언어를 활용해 컴퓨터가 수행해야할 작업의 순서를 나열하는 것을 의미.
- 모든 구문은 세미콜론(;)으로 종료.
- 주석
- 프로그램 개발 시 간단한 메모나 설명을 작성하는 것을 의미.
- 주석으로 작성된 부분은 컴파일 시 컴파일러에 의해 무시되며 최종 파일에 코드가 포함되지 않음
- //: 한 줄 주석
reference
소프트캠퍼스, 처음 시작하는 C언어, 구름EDU, URL, 2021년 8월 23일 수강