티스토리 뷰
- C언어의 정의
- 프로그래밍 언어
- 사람과 컴파일러가 이해할 수 있도록 약속된 형태의 언어
- 기계어, 어셈블리어, C, C++, C#, java, php등
- 사람 - 인간의 언어, C언어 -> 컴파일러 - C언어, 기계어 -> 컴퓨터 - 기계어
- 사람과 컴파일러가 이해할 수 있도록 약속된 형태의 언어
- 컴파일러
- 프로그래밍 언어로 작성된 프로그램을 컴퓨터가 이해할 수 있도록 기계어로 번역해주는 번역기
- 어셈블러
- 기호로 표현된 어셈블리 코드를 기계어로 번역하는 번역기
- 인터프리터
- 소스프로그램을 한번에 기계어로 변환시키는 컴파일러와는 달리 프로그램을 한 단계씩 기계어로 해석해서 실행하는 언어처리 프로그램
- 어셈블러
- 프로그래밍 언어로 작성된 프로그램을 컴퓨터가 이해할 수 있도록 기계어로 번역해주는 번역기
- C언어의 특징
- 프로그램 이식성이 높음
- 간단한 문법표현으로 함축적인 프로그램 작성이 용이함
- 저급언어 특성을 가진 고급언어
- 저급언어: 컴퓨터가 잘 알아들을 수 있는 언어
- 고급언어: 컴퓨터가 잘 알아들을 수 없는 언어
- C 프로그램 완성 과정
- 코딩 -> 컴파일 -> 링킹
- 코딩단계: 주어진 문제에 대한 설계를 바탕으로 소스코드를 작성해서 소스파일을 생성하는 과정
- 소스파일 생성(sample.c)
- 컴파일단계: 소스파일이 목적파일로 변환되는 과정
- 목적파일 생성(sample.obj)
- 링킹단계: 목적파일을 실행파일로 변환되는 과정
- 실행파일 생성(sample.exe)
- 코딩단계: 주어진 문제에 대한 설계를 바탕으로 소스코드를 작성해서 소스파일을 생성하는 과정
- 코딩 -> 컴파일 -> 링킹
- C 프로그램의 작성과 실행 예
- Dev-C++ 컴파일러
- Visual Studio 컴파일러
- C 프로그램의 구성
- 예약어
- 자료형 관련 예약어
- char, int, float, short, long, ...
- 기억 관련 예약어
- auto, static, extern, register, ...
- 제어 관련 예약어
- if~else, for, while, do~while, writch~case, break, continue, return, ...
- 기타 예약어
- main, sizeof, include, ...
- 자료형 관련 예약어
- 명칭(idetifier)
- 명칭의 규칙
- 올바른 명칭: sun10(영문자와 숫자 조합가능), SUN10(sun10과는 다른명칭), For(예약어 for와는 다름), _sum(밑줄(_)사용가능)
- 잘못된 명칭: 2m(숫자로 시작불가), KBS@TV(특수문자 사용불가), for(예약어 사용불가), SUN 10(문자사이 공백사용불가)
- 명칭의 규칙
- 상수(constant)
- 수치상수, 문자상수, 문자열 상수
- 연산자(operator)
- 설명문(주석문)
- 예약어
- 에러와 경고
- 에러
- C언어의 문법상 잘못된 경우 에러메세지를 출력
- 즉, C언의 문법에 맞지 않는 형식의 사용이나 반드시 필요한 지정이 빠진 경우 등에서 발생
- 에러 메시지를 확인하여 반드시 수정하여야 함
- 경고
- 경고는 일단 컴파일은 가능한 경미한 실수를 했을 때 발생
- 경고메시지의 내용을 파악해서 타당한 지적이라면 수정, 그렇지 않다면 무시해도 상관없음
- 경고를 무시해도 실행파일을 생성해서 실행할 수 있는 경우가 많음
- 에러
- 프로그래밍 언어
'C' 카테고리의 다른 글
[C] 포인터와 배열 (0) | 2021.04.27 |
---|---|
[c] 포인터 (0) | 2021.04.21 |
[C] 배열 (0) | 2021.04.14 |
[C] 입.출력 함수와 연산자 (0) | 2021.03.25 |
[C] 자료형과 선행처리기 (0) | 2021.03.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 운영체제
- 인접리스트
- C++
- dfs
- 퀵정렬
- 자료구조
- 클래스
- stackframe
- 병행프로세스
- 재귀함수
- 최단경로
- react
- Java
- 세마포어
- 교착상태
- 스텍
- 입출력장치
- BFS
- C
- 배열
- 인접행렬
- javascript
- 알고리즘
- 이진탐색
- 소프트웨어
- client side rendering
- 동적프로그래밍
- Stack
- server side rendering
- 구조체
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 26 |
27 | 28 | 29 | 30 |
글 보관함