c언어 개요

2023. 3. 17. 15:03개발하는중/c

728x90
반응형

1. C언어의 정의

  프로그래밍 언어

 - 사람과 컴파일러(compiler)가 이해할 수 있도록 약속된 형태의 언어

 -> 기계어, 어셈블리어, c, c++, c#, java, python, kotlin 등

 

  컴파일러

 - 프로그래밍 언어로 작성된 프로그램을 컴퓨터가 이해할 수 있도록 기계어로 번역해주는 번역기

  어셈블러(assembler)

   -> 기호로 표현된 어셈블리 코드를 기계어로 변역하는 번역기

  인터프리터(interpreter)

  -> 소스 프로그램을 한번에 기계어로 변환시키는 컴파일러와 달리 프로그램을 한 단계씩 기꼐 어로 해석하여 실행하는 언어처피 프로그램

 

 c언어의 역사

 - Denis Ritchie(1972년)

 - unix 운영체제 구현에 사용할 목적으로 개발

   -> 컴퓨터 기종간 호환성을 가진 고급이면서 하드웨어를 제어할 수 있는 새로운 언어가 필요

- 어셈블리 언어로 된 unix 운영체제가 거의 c언어로 대체

 

c언어의 특징

 - 프로그램 이식성이 높다

 - 간단한 문법표현으로 함축적인 프로그램 작성이 용이

 - 저급언어 특성을 가진 고급 언어

 

2. 프로그램 작성 준비

 프로그램 개발 단계 (일반적인 개발 단계)

   프로그램 목적 정의      → 요구분석과 시스템 분석을 통하여 프로그램이 가져야 할 기능 정의

   프로그램 설계          → 분석된 기능을 처리할 수 있도록 프로그램 구조를 설계

   소스코드 작성            → 작성된 프로그램 설계를 기반으로 에디터를 사용하여 작성

   컴파일/링크             → 소스코드를 실행 가능한 코드로 변환하고 문법 검사 

   프로그램 실행             → 프로그램 실행

   테스트와 디버깅         → 에러를 검사하고 디버깅

   유지보수               →사용중 발생되는 에러나 추가적인 변경사항을 처리

 

 에디터(edit)와 컴파일러 필요

   -에디터

      -> 소스코드를 작성하여 저장할 수 있도록 도와주는 도구

   - c 컴파일러

     -> trubo C/C++, dev-c++, visual c++, gcc ...

 

c프로그램의 완성 과정

코딩 -> 컴파일 -> 링킹

- 코딩(coding) 단계

  -> 주어진 문제애 대한 설계를 바탕으로 소스코드(source code)를 작성하여 소스파일(source file)을 생성하는 과정

- 컴파일(compile)

  -> 소스파일이 목적파일(object file)로 변환되는 과정

- 링킹(linking)

  -> 목적파일을 실행파일 (execution file)로 변환되는 과정

 

소스 파일 생성 

코딩 후 test.c 확장자로 파일을 저장 해야 소스파일 생성된다.

소스 파일 컴파일

test.c파일을 컴파일러 로 컴파일 하면 목적파일 test.obj (기계어 형태)만든다

행 파일의 생성(링킹 과정)

목적파일을 test.obj  링커를 통해 실행파일 test.exe 을 생성

 

에디터 사용법 알아보면됨

 

3. 프로그램의 구성

   c프로그램의 기본 구조

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* C프로그램의 구조 예 */
 
 
// 도입부 
// 프로그램 전체에 적용되는 사항을 기술
#include<stdio.h>
int add<int x, int y);
 
 
// main()함수는 가정 먼저 호출되 난 함수 모든 프로그램에 반드시 존재 
void main(){
    int i, j, sum;
    printf("함수의 호출\n");
    i = 10, j = 20;
    sum = add(i, j);
    printf("%d + %d = %d", i, j, sum);
{
 
 
// main() 함수에서 호출되는 함수에 대한 정의
int add(int x, int y){
    int tot;
    tot = x + y;
    return tot; 
}
cs

  

   c프로그램은 반드시 하나 이상의 함수를 포함해야 한다. 

  main() 함수가 반드시 존재해야 한다.

  함수의 시작과 끝을 알리는 중괄호 {}를 사용해야 한다.

  중괄호 안에는 변수 선언문, 치환문, 연산문, 함수 등의 명령을 기입한다.

   선행처리기(preprocessor)를 제외하고 문장의 끝에는 세미 콜론(;)을 붙인다.

 

c 프로그램의 구성요소

 

- 예약어(reserved word)
자료형 관련 예약어
char, int, float, short, long, double, unsigned, union, enum, void
기억 관련 예약어
auto, static, extern, register, ...
제어 관련 예약어
if~else, for, while, do~while, switch~case, break, continue, return
기타 예약어
main, sizeof, include, ...

 

- 명칭(identifier)  규칙
영문자와 숫자의 조합으로 만든다.
명칭의 첫 문자는 영문자나 밑줄( _ )이어야 핚다.
특수문자를 사용해서는 안 된다.(단, 밑줄( _ ) 사용가능)
문자 사이에 공백이 있어서는 안 된다.
예약어를 사용할 수 없다.
영문자 대문자와 소문자는 서로 구별하여 사용
명칭의 길이는 컴파일러에 따라 차이가 있다.
(일반적으로 32자까지 인식가능)

 

- 상수(constant)
수치 상수, 문자 상수, 문자열 상수

- 연산자(operator)
연산자를 사용하여 각종 연산 수행
다른 언어에 비해 많은 연산자

- 설명문(주석문)
여러 줄에 걸친 설명문을 넣기 위해서는 /* 와 */ 을 사용
한 줄짜리 설명문을 넣기 위해서는 보통 // 을 사용
프로그램의 어느 부분에도 위치할 수 있다.
2개 이상의 라인으로 계속될 수 있다.

 

4. 에러와 경고

 

- 에러(error)
C 언어의 문법상 잘못된 경우 에러 메시지를 출력
즉, C 언어의 문법에 맞지 않는 형식의 사용이나
반드시 필요한 지정이 빠진 경우 등에서 발생
에러 메시지를 확인하여 반드시 수정하여야 한다.

 

- 경고(warning)
경고는 일단 컴파일은 가능한 경미한 실수를 했을 때 발생
현재는 큰 문제가 없지만 이식성에 불리하다거나,
C 언어 문법에서 권장하지 않는 방법으로 소스 프로그램을
작성했을 때도 발생
경고 메시지의 내용을 파악하여 타당한 지적이라면 수정하고,
그렇지 않다면 무시하여도 상관없다.
경고를 무시하여도 실행파일을 생성하여 실행 할 수 있는
경우가 많다.

728x90

'개발하는중 > c' 카테고리의 다른 글

표준 입출력 함수  (0) 2023.04.03
자료형, 선행 처리기  (0) 2023.03.20
c언어_연산자의 이해  (0) 2021.05.18
c언어_표준 입력 함수 scanf()의 이해  (0) 2021.02.04
c언어_상수의 이해  (0) 2021.02.03