본문으로 바로가기

[C언어] Preview (정리1)

category C언어 2018. 2. 2. 17:29

C언어의 특징 및 장점


  1. 강력한 제어구조 : 하향식(Top-Down) 설계, 구조적 프로그래밍
  2. 효율성 : 프로그램의 크기가 작고 실행 속도가 빠름, 메모리를 가장 효율적으로 사용 가능
  3. 이식성 : C코드를 다른 시스템에 사용하고자 할 때 최소한의 수정으로 실행 가능


C 프로그래밍 과정에서 발생하는 오류의 종류


  • Warning : 코드 내의 문법이나 데이터 형의 사용 중 모호한 부분에 대한 경고
  • Compile Error : C 문법을 잘못 사용할 때 발생하는 오류
  • Link Error : 전역변수 정의 및 함수 선언 및 정의가 잘못 되어있는 경우 발생하는 오류 (보통 오타 주의  int main() -> int mian())
  • Run Time Error : 프로그램 실행 도중 발생하는 오류 (주로 메모리를 관리 오류)
  • Logic Error : 프로그램의 제어문이나 데이터 형의 잘못된 사용 등의 이유로 프로그램이 비정상저긴 결과로 수행되는 경우


C 기본 프로그래밍 뼈대 살펴보기



  • 1 line  : #include는 선행처리기 명령(Processor 지시자)이다. 이는 Preprocessor에 의해 처리되며 "stdio.h"라는 헤더파일을 위치에 포함시킨다.
  • 3 line  : 함수선언부를 선언해야 한다.

compiler에게 함수의 최소정보를 주어 함수 호출부에서 에러를 안나게 하기 위해서입니다.

  • 8 line  : 함수호출부
  • 9 line : 0값을 갖고 제어를 되돌려 준다.
  • 12 line : 함수정의부 (argument, parameter 변수명은 같게 설정해도 된다. number를 공유하는 관계가 아닌 새로 잡히는 공간이기 때문에)


배열의 특징


  1. 동일한 data형의 집합
  2. 연속된 Memory에 할당됨 (MMU : 물리적으로 떨어져 있는 주소를 논리적인 주소로 연결시켜주는 역할을 한다.)
  3. Index는 0번 부터 시작
  4. 배열명은 곧 그 배열의 시작주소 상수를 의미한다.


  • 1 line : 선언과 동시에 초기화해야 가능하다!
  • 5 line : 배열명은 배열의 시작 주소 상수이므로, 상수를 좌변에 쓸 수 없다.


프로그램 처리과정


  • test.cpp : 프로그래머에 의해 작성된 원시파일

preprocessor(전처리기) : 필요한 외부파일의 삽입, 상수 치환 등


  • test.cpp' : 변형된 원시파일

compiler : 전처리기에 의해 변형된 내용을 기계어로 번역


  • a.obj : 목적파일(binary : 기계어 상태)

linker : ① 프로그래머의 기계어 코드에 필요한 코드들을 삽입(Start_up code, Library Routine)

  ② 프로그램 내의 소스파일이 여러 개일 경우 Object 파일을 연결


  • a.exe : 실행파일(binary : 기계어 상태)

※ 참고

  • Start_up code : 각종 buffer 할당, 각종 Memory 해재, main() call
  • 컴파일 : 소스코드를 실행코드로 변환 시킴 (Preprocessing) -> compiling -> linking의 과정을 걸쳐 실행 파일 생성.


기타


  • RAM vs H/D(하드디스크)

 RAM

하드디스크 

  1. 휘발성
  2. 상대적 소용량
  3. 고속 메모리
  4. Byte 단위로 주소 할당
  1. 비휘발성 메모리
  2. 대용량
  3. 저속 메모리



'C언어' 카테고리의 다른 글

[C언어] 구조체 (정리5)  (0) 2018.02.09
[C언어] 포인터 (정리4)  (0) 2018.02.07
[C언어] 배열 (정리3)  (0) 2018.02.06
[C언어] 데이터형 (정리2)  (0) 2018.02.06

댓글을 달아 주세요