mim
mim 코딩 기록
mim
  • 분류 전체보기 (131)
    • 백엔드 과정 (108)
      • Java (50)
      • Oracle(SQL) (19)
      • jdbc (6)
      • html css (4)
      • JavaScript (5)
      • Servlet (12)
      • Spring (3)
      • 자바 예습 (8)
    • 개발지식 (12)
      • CS공부 (9)
      • 세미나및교육 (2)
    • 자격증 (6)
      • 네트워크관리사 (5)
    • Project (3)
    • Error Note (1)

블로그 메뉴

  • 깃허브

태그

  • oracle
  • java
  • 반복문
  • 배열
  • 서블릿
  • 국비교육
  • 문제풀이
  • 자바
  • Servlet
  • 국비학원
  • SQL
  • 오라클
  • 데이터베이스
  • JDBC
  • 국비

인기 글

최근 글

전체 방문자
오늘
어제

티스토리

반응형
hELLO · Designed By 정상우.
mim

mim 코딩 기록

개발지식/CS공부

[C언어] C프로그래밍 개요

2022. 3. 1. 15:07
반응형

 

프로그래밍 언어 : 사람과 컴파일러가 이해할 수 있도록 약속된 형태의 언어

기계어 : 컴퓨터가 읽어내는 0과 1로 된 언어

 

사람 -> * 컴파일러 * -> 컴퓨터

 

컴파일러를 통해 컴퓨터를 다루는 것 . 

C언어를 사용하기 위해서는 컴파일러가 필요 

 

컴파일러 ?

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

  • 어셈블러(assaembler)
    기호로 표현된 어셈블리 코드를 기계로 번역하는 번역기
  • 인터프리터(interpreter)
    소스프로그램을 한번에 기계어로 번환시키는 컴파일러와 달이 프로그램을 한 단계씩 기계어로 해석하여 실행하는 언어 처리 프로그램

C언어는 Denis Ritchie (1972년) 에 의해 제안

unix 운영체제 구현에 사용할 목적으로 개발 되었다.

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

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

 

C언어의 특징

  • 프로그램 이식성이 우수하다
  • 간단한 문법표현으로 함축적인 프로그램 작성이 용이하다
  • 저급언어 특성을 가진 고급 언어이다.

 

저급 언어 (Low-Level Language)

- 기계 중심의 언어

- 실행 속도가 빠름

- 상이한 기계마다 다른 코드를 가진다

 

고급 언어 (High-Level Language)

- 사람 중심의 언어

- 실행을 위해서는 번역하는 과정이 필요함

- 상이한 기계에서 소스 수정 없이 실행이 가능함

 

C프로그램의 작성 및 준비

프로그램 개발 단계

  1. 프로그램 목적 정의
  2. 프로그램 설계
  3. 소스 코드 작성
  4. 컴파일/링크
  5. 프로그램 실행
  6. 테스트와 디버깅
  7. 유지보수

C언어를 개발하기 위해서는 에디터와 컴파일러 필요

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

C컴파일러 : Turdo C/C++ , Dev-C++, Visual C++ 등등

 

* 코딩 -> 컴파일 -> 링킹 * 

  • 코딩 단계
    : 주어진 문제에 대한 설계를 바탕으로 소스코드를 작성하여 소스파일을 생성하는 과정 ( .c 라는 확장자로 저장 )
  • 컴파일 단계
    : 소스파일이 목적파일(object file)로 변환 되는 과정 (기계어의 형태로 저장 0과 1 )
  • 링킹 단계
    : 목적파일을 실행파일(execution file)로 변환하는 과정
    (여러 목적파일과 라이브러리가 모여 링커를 통해 연결되면서 프로그램의 실행파일로 저장 )

 

* C프로그램의 기본 구조 *

/* 도입부 - 프로그램 전체에 적용되는 사항을 기술 */
#include<stdio.h>
int add(int a, int b);

/* main()함수는 가장 먼저 호출되는 함수로써 모든 프로그램에 반드시 존재 */
void main() {
	int a, int b;
	println("함수의 호출\n");
	a = 10, b = 20;
	sum = add(a, b);
	printf("%d + %d = %d" , a, b, sum);
}

/* main() 함수에 호출되는 함수에 대한 정의 */
int add(int a, int b){
	int total;
    total = a + b;
    return total;
}
  • C프로그램은 반드시 하나 이상의 함수를 포함해야 한다.
  • main() 함수가 반드시 존재해야 한다.
  • 함수의 시작과 끝은 중괄호 {}를 사용해야 한다.
  • 중괄호 안에는 변수 선언문, 치환문, 연산문, 함수 등의 명령을 시입한다.
  • 선행 처리기를 제회하고 문장의 끝에는 세미콜론 ; 을 붙인다.
#include<stdio.h> ? 
printf 함수를 사용하기 위해 stdio.h 헤더파일을 포함(include)한다는 의미
프로그램 실행 시 Preprocessor(전처리기)가 #이 붙은 문장을 먼저 실행한다.

 

C프로그램의 구성요소

  • 예약어  (reserved word)
    : 사전에 컴파일러가 알고 있는 단어
    (Ex. int, char같은 자료형, static, auto 같은 기억 관련 , if ~else 같은 제어관련 , main, include 기타 예약어 등등)
  • 명칭 (identifier)
    : 명칭을 만들 때의 규칙을 따름. (Ex. 변수의 명명규칙)
    사용자 정의의 명칭의 예 (inum, str 등 대소문자를 구분한다.)
    잘못된 명칭 (2num -> 숫자로 시작 불가, 특수문자 사용 불다. 문자사이 공백 불가 )
  • 상수 : 변하지 않는 값
  • 연산자 : 사칙연산 , 비교연산 등 
  • 설명문 : 한줄주석 //, 여러줄 주석 /**/

 

error

C언어의 문법상 잘못된 경우 에러 메세지를 출력

C언어의 문법에 맞지않는 형식으로 작성된 경우. 무조건 수정해야 한다.

 

경고

경고는 경미한 실수를 햤을때 발생. 무시하여도 실행은 되기 때문에 수정하지 않아도 상관 없다.

(Ex. 변수를 선언 하였으나 프로그램에서 사용하지 않았을 경우)

 

Reference

C프로그래밍 / KNOUPress 

 

C프로그래밍 - 한국방송통신대학교 출판문화원

C프로그래밍

press.knou.ac.kr

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'개발지식 > CS공부' 카테고리의 다른 글

[운영체제] 프로세스 / 쓰레드 / 스케줄링  (0) 2022.03.11
[C언어] 상수와 변수 자료형/ 선행처리기  (0) 2022.03.10
[Java] java와 객체지향 프로그래밍  (0) 2022.03.05
[운영체제] 운영체제 개요  (0) 2022.03.01
[데이터베이스] 데이터베이스 모델링  (0) 2022.02.27
    mim
    mim
    개발자 취준생

    티스토리툴바