본문 바로가기
프로그래밍 언어/C

C언어 - 1. C언어의 정의

by nomfang 2021. 3. 3.
728x90
반응형

C언어

프로그래밍 언어

  • 사람과 컴파일러(컴퓨터 언어로의 번역기)가 이해할 수 있도록 약속된 형태의 언어
    -> 기계어, 어셈블리어, C, Java, PHP 등

사람 (C언어) - 컴파일러 (C, 기계어) - 컴퓨터 (기계어)

컴파일러

-> 어셈블러
: 기호로 포현된 어셈블리 코드를 기계어로 번역, 소스 프로그램을 한번에 기계어로 변환

-> 인터프리터
: 어셈블러와는 달리 프로그램을 한 단계씩 기계어로 해석하여 실행하는 '언어처리 프로그램'

C언어의 역사

  • 1972년 Denis Ritchie

  • UNIX 운영체제 구현에 사용할 목적으로 개발
    컴퓨터 기종간 호환성을 가진 고급 언어, 하드웨어를 제어할 수 있는 언어가 필요했다

  • 어셈블리 언어로 된 UNIX언어가 대부분 C 언어로 대체됨

C언어의 특징

  • 프로그램 이식성이 높다
  • 간단한 문법 표현으로 함축적인 프로그램 작성 가능
  • 저급언어의 특성을 가진 고급 언어이다

저급언어 (low level)

  • 컴퓨터가 쉽게 이해할 수 있는 언어

프로그램 개발 단계

프로그램 목적 정의프로그램이 가져야할 기능 정의
프로그램 설계프로그램 구조 설계
소스코드 작성설계를 기반으로 작성
컴파일/링크실행 가능한 코드로 변환, 문법 검사
프로그램 실행프로그램 실행
테스트와 디버깅에러 검사
유지 보수사용 중 발생 에러나 추가 변경사항 처리

C 프로그램 개발 단계

  • 에디터와 컴파일러 필요

  • 에디터
    : 소스코드를 작성하여 저장할 수 있도록 도와주는 도구

  • 컴파일러
    : Dev-C++, Visual C++ 등이 있다

C프로그램의 완성 과정

코딩 -> 컴파일 -> 링킹

코딩 단계

  • 주어진 문제에 대한 설계 를 바탕으로 소스코드를 작성, 컴파일 하여 소스파일을 생성하는 과정

컴파일 단계

  • 소스파일이 목적파일로 컴파일하는 과정

링킹 단계

  • 목적파일이 링커를 통해 실행파일로 변환되는 과정 (컴파일을 하면 링킹은 자동으로 진행됨)

소스파일

: .c 확장자를 가진 파일, C와 C++를 통합하여 사용 가능

목적파일

: .obj 확장자를 가진 파일로 0과 1로 이루어져 있음

실행파일

: .exe 확장자를 가진 파일로 목적파일 하나로는 실행될 수 없고 다른 목적파일과 라이브러리 등을 조합하여 생성 가능

여러 실행파일 -> 프로젝트
여러 프로젝트 -> 솔루션

Visual Studio의 솔루션 빌드는 컴파일과 같은 의미이다

C프로그램의 기본 구조

도입부, main함수 영역(반드시 존재해야함, 선언문, 치환문, 제어문, 함수호출 등), 함수영역

  • 반드시 하나 이상의 함수를 포함해야 한다(main)
  • 함수의 시작과 끝을 알리는 중괄호 사용 {}
  • 중괄호 안에 변수선언문, 치환문, 연산문, 함수 등의 명령 기입
  • 선행처리기를 제외하고 문장 끝에는 세미콜론( ; )을 붙인다

C프로그램의 구성 요소

  • 예약어 : int, char, if, for. static, main 등
  • 명칭 : 변수, 배열, 함수 등의 이름 ( 대소문자 구분, 숫자, 밑줄 사용 가능, 영어나 밑줄로 시작해야함 )
  • 상수 : 값이 불변인 자료 (수치, 문자, 문자열 등)
  • 연산자 : =, -, *. ++ 등
  • 설명문 : 주석 ( /* */ , // )

에러와 경고

  • 에러 : 문법상 잘못된 경우 발생, 반드시 수정해야한다.
  • 경고 : 경미한 경우, 수정하지 않아도 실행파일 생성 가능
반응형

댓글