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