Posted
Filed under 공부한 것들/C/C++

C프로그램의 기본 골격
 

사용자 삽입 이미지

프로그램 구성 요소

1) 전처리문

전처리문은 소스 파일이 컴파일 되기전에 먼처 처리되는 문장.
컴파일이 되기 전에 일련의 코드들이 프로그램 첫 부분에 추가되어 컴파일 된다는 뜻.

전처리문 기술 예

● #include 문 : 헤더 파일을 편입시킴
   예) #include <stdio.h>

● define문 : 문자열을 상수 값으로 정의.(매크로 정의라고도 함.)
    예) #define    PI    3.14

● 그 외 #if, #ifdef, #ifndef, #else 등등..


2)사용자 함수, 외부 변수 선언
사용자가 직접만든 함수를 컴파일러가 인식 할 수 있도록 이곳에다 그 함수를 기술해야만 컴파일러는 에러를 내지 않고 무사히 컴파일 할 수 있음. 또한 외부 변수도 여기에다 기술, 외부 변수는 프로그램 전체에 대하여 영향을 받는 변수

내부 변수는 그 함수 내에서만 영향을 받는 변수, 컴파일러에게 이러이러한 것들을 사용하겠다 라고 알려주는 역할을 선언(Declaration)이라고 함. 사용자가 만든 함수나 변수들은 반드시 선언을 해야만 에러가 나지 않음.

3) main 함수
main 함수는 C 프로그램에 핵, C 프로그램은 main 함수가 반드시 있어야 하며 전체 프로그램에서 단 한 개의 main함수가 존재. main함수 안에 사용자 정의 함수, 내부 변수들이 올 수 있음. 사용자 저으이 함수는 main함수 안에 선언하기도 하지만, 일반적으로 전처리문 다음, 메인 함수 앞에 선언.

4) 실행문
실행문은 컴파일러가 번역되는 문장, 실행문에는 변수, 상수, 제어문, 반복문, 수식 등으로 이루어지며 실행문 끝에는 반드시 ';'(세미콜론)으로 마무리 해야 함(선언문도 마찬가지). 만약 ';' 으로 마무리 하지 않은 경우에는 컴파일러는 그 문장이 이어진다고 생각하고 특정 부분에 가서는 에러 메시지를 띄움.
초보자들이 범하기 쉬운 실수 중 하나.

5) 함수(인수1, 인수2)

선언했던 사용자 함수의 실제 내용을 기술, =>(함수의 정의 (Definition)
C언어는 함수의 언어, C프로그램은 수백 개의 표준 함수와 사용자가 직접 만든 사용자 정의함수로 구성 됨. 사용자 정의 함수는 말 그대로 사용자가 필요에 의해 직접 만들어 쓰는 함수이고, 표준함수는 C언어에서 제공해주는 함수.

인수1, 인수2 는 함수가 데리고 다니는 자식들(자식이 없는 부모가 있드시, 함수에도 인자가 없을 수 있음.)
사용자 정의 함수는 꼭 필요한 항목은 아님.

2007/05/13 16:57 2007/05/13 16:57
Posted
Filed under 공부한 것들/C/C++

저급언어(Low-Level Language)와 고급언어(High-Level Language)

저급언어(Low-Level Language)

저급언어는 컴퓨터 하드웨어와 더 가까운 언어로서 기계어(Machine Language)와 어셈블리 언어(Assembly Language)가 있음.
전류가 흐르는 상태인 ON은 숫자 1, 전류가 흐르지 않는 상태인 OFF는 숫자 0으로 표시, 이렇게 0,1로만 나타내는 언어를 기계어(Machine Language)라고 함.
컴퓨터는 0,1로만 인식, 기계어를 사람이 알 수 있는 형식으로 만들 필요가 있었는데 이렇게 기계어를 문자적으로 표현 한 것이 바로 어셈블리어(Assembly Language)

어셈블리어는 숫자 0, 1로 이루어진 명령어를 ADD, MOV와 같은 문자로 표현한 언어. 어셈블리어를 컴퓨터가 알 수 있는 기계어로 변역해 주어야 하는 과정이 필요한데, 이러한 과정을 어셈블(Assemble)한다 라고 하고 어셈블리어를 기계어로 번역하는 주체는 어셈블러(Assembler)라고 하는 언어 번역기가 담당.

고급언어(High-Level Language)

고급언어는 저급언어와 반대로 사용자와 더 가까운 언어. (기계어, 어셈블리어 이외의 모든 언어가 고급언어에 속함)
고급언어도 저급언어와 마찬가지로 컴퓨터가 직접 인식하지 못하여 기계어로 번역을 번역을 해주어야 하는데 고급언어에서는 이러한 과정을 컴파일(Compile)한다라고 하고 기계어로 번역해주는 주체를 컴파일러(Complier)라고 함.

저급언어와 고급언어의 가장 큰 차이점은 그 언어가 사용자 위주의 언어냐, 하드웨어 위주의 언어냐에 따라 다름.
저급언어는 하드웨어와 밀접한 관계가 있기 때문에 하드웨어를 직접 제어할 수 있는 반면에 전문가가 아닌 이상은 다루기가 어려움.
반면, 고급언어는 사용자와 밀접한 관계가 있기 때문에 일반 사용자가 다루기가 쉬운 반면 하드웨어를 직접 제어해야 할 경우엔 한계가 있음.

2007/05/13 16:29 2007/05/13 16:29
Posted
Filed under 공부한 것들/C/C++
C언어의 특징

C언어는 사용자 중심의 고급언어(High-Level Language)이면서 하드웨어를 직접 제어할 수 있는 저급언어(Low-Level Language)의 특징을 모두 가지고 있음

C언어는 이식성이 뛰어남.
이식성이라는 말은 어느 한 컴퓨터 시스템에서만 사용되는 것이 아니라 다양한 운영체제와 다양한 하드웨어에서도 큰 수정없이 사용할 수 있다는 것.
C프로그램이 약간의 수정만 거치게 되면 도스나 윈도우에서도 사용할 수 있음.

C언어는 다양한 제어구조를 지원
if-else, switch, whie, do-whie, for, break 등과 같은 제어문은 제공, 프로그램을 좀더 구조적으로 만들 수 있음.

C언어는 함수(function)의 언어
함수라는 것은 '어떤 기능을 수행하는 프로그램 단위', C언어는 기본적인 데이터 타입, 구조체, 유니온 그리고 포인터 값을 반환하는 다양한 함수들이 있음.(C언어에서 제공하는 함수는 수백개가 넘기 때문에 어떤 곳에 어떠한 함수를 사용하느냐가 중요한 문제가 될 수 있음)

C언어는 auto, static, external과 같은 몇 가지 유용한 기억 부류를 제공
즉, 지역 변수냐, 전역변수냐에 따라서 프로그램의 효율을 극대화,

C언어는 프로젝트 파일이라는 것을 제공,
큰 덩어리의 프로그램을 한 파일에서 한꺼번에 컴파일하는 것이 아니라 모듈별로 각각 분리하여 저장하여 컴파일을 거쳐서 최종적으로는 하나의 실행파일을 만들 수 있음.
2007/05/13 16:17 2007/05/13 16:17