object file(목적파일) : .obj 확장자를 갖는 팡일로 기계어들의 집합으로 이루어진 파일.
linker(링커) : 여러 목적파일과 라이브러리 파일을 연결해 주는 도구.
reserved word(예약어) : C 언어에 미리 정의되어 있는 단어.
C 언어의 정의, 역사, 특징
C언어의 정의
프로그래밍 언어
사람과 컴파일러(compiler)가 이해할 수 있도록 약속된 형태의 언어.
Compiler
프로그래밍 언어로 작성된 프로그램을 컴퓨터가 이해할 수 있도록 기계어로 번역해 주는 번역기.
어셈블러(assembler) : 기호로 표현된 어셈블리 코드를 기계어로 번역하는 번역기.
인터프리터(interpreter)
소스 프로그램을 한번에 기계어로 변환시키는 컴파일러와는 달리, 프로그램을 한 단계씩 기계어로 해석하여 실행하는 '언어처리 프로그램'
C언어의 역사
Denis Ritchie (1972)
Unix 운영체제 구현에 사용할 목적으로 개발.
컴퓨터 기종간 호환성을 가진 고급이면서, 하드웨어를 제어할 수 있는 새로운 언어가 필요함.
어셈블리 언어로 된 UNIX 운영체제가 거의 C 언어로 대체됨.
C 언어의 특징
프로그램 이식성이 높음.
간단한 문법 표현으로 함축적인 프로그램 작성이 가능.
저급언어 특성을 가진 고급언어.
C 프로그램 작성 및 준비
프로그램 개발 단계
일반적인 프로그램 개발
프로그램 목적 정의.
요구 분석과 시스템 분석을 통하여 프로그램이 가져야 할 기능 정의.
프로그램 설계.
분석된 기능을 처리할 수 있도록 프로그램 구조 설계.
소스코드 작성.
작성된 프로그램 설계를 기반으로 에디터를 사용하여 작성.
컴파일 / 링크.
소스코드를 실행 가능한 코드로 변환하고 문법 검사.
프로그램 실행.
프로그램 실행.
테스트와 디버깅.
에러를 검사하고 디버깅.
유지 보수.
사용 중 발생 되는 에러나 추가적인 변경사항을 처리.
C 프로그램을 작성한다면
에디터와 컴파일러가 필요함
에디터 : 소스코드를 작성하여 저장할 수 있도록 도와주는 도구.
C 컴파일러 : Turbo C/C++, Dev-C++, Visual C++, GCC, ...
C 프로그램의 완성 과정
코딩 -> 컴파일 -> 링킹
코딩.
주어진 문제에 대한 설계를 바탕으로 소스코드(source code)를 작성하여 소스파일(source file)을 생상하는 과정.
컴파일(compile) 단계.
소스파일이 목적파일(object file)로 변환되는 과정.
링킹(linking) 단계.
목적 파일을 실행파일(execution file)로 변환하는 과정.
\
소스파일의 생성
실행 파일의 생성(링킹 과정)
실제로는 컴파일 후, 링킹 과정을 거쳐 실행 파일이 나옴. 다만 링킹 과정을 거친다는 사실은 인지하고 있어야 함.
C 프로그램의 구성
C 개발을 할 때, 기본적인 틀을 만들어 사용 해야 함. 기본적인 C의 틀을 알아보자.
C 프로그램의 구조
// 도입부 : 프로그램 전체에 적용되는 사항을 기술.
/* C 프로그램 구조의 예*/
#include<stdio.h>
int add(int x, int y);
// --------------------------------- //
// main()는 가장 먼저 호출되는 함수로서 모든 프로그램에 반드시 존재함.
void main() {
// 선언문
// 치환문
// 제어문
// 함수 호출
}
// --------------------------------- //
// main()에서 호출되는 함수에 대한 정의
호출될 함수() {
//
}