기타 강좌

2 - 1 프로그램의 구조

다음 장부터 본격적으로 C 문법 공부를 시작하게 될 것이다. 그 전에 C문법의 기본적인 특징과 구조에 대해 미리 숙지하도록 하자. 이미 다 알고 있는 내용인지 모르겠지만 본격적인 실습에 들어가기 전에 C의 특징에 대해 간략하게 정리해 보았다.

 

 C언어는 대소문자를 구분하므로 키워드나 명칭 등을 작성할 때 대소문자 구분에 유의해야 한다. 변수를 선언할 때는 Score로 선언해 놓고 쓸 때는 score로 쓰면 이 변수는 선언되지 않은 것으로 취급된다. 또한 main을 Main으로 써도 안되며 예약어들도 대소문자에 맞게 써야 한다. INT num; 이라고 쓰면 안된다. C의 예약어들은 모두 소문자이고 변수나 함수명도 대부분 소문자로 작성하므로 가급적이면 소문자만 쓰는 것이 좋다. 책의 소스를 직접 입력할 때도 소스에 적힌대로 정확하게 입력해야 한다.

 C 프로그램은 항상 main 함수로 시작한다. C는 함수 위주의 언어이며 필요한 함수를 자유롭게 만들어 쓸 수 있는데 함수 중에 반드시 있어야 하는 함수가 바로 main 함수이다. main은 프로그램의 시작점이 되며 이름이 고정되어 있다. 컴파일러는 main에서부터 실행을 시작한다.

 모든 문장은 세미콜론으로 끝이 나는데 세미콜론은 자연어의 마침표에 해당한다. 컴파일러는 세미콜론을 기준으로 어디서 어디까지가 한 문장인지를 구분하므로 모든 명령 끝에 반드시 세미콜론을 달아 주도록 하자.

 C언어는 프리포맷(Free Format)을 지원한다. 문법에만 맞으면 한줄에 붙여 쓸 수도 있고 여러 줄에 나누어 쓸 수도 있다. 조금 여백을 주기 위해 괜히 한 줄을 비워 둘 수도 있으며 들여쓰기나 공백의 개수도 편한대로 작성할 수 있다. First 예제를 다음과 같이 수정해도 제대로 컴파일된다.

 

#include <stdio.h>

void main() {printf("korean");}

 

단 두 줄에 다 붙여 써도 상관없다. 또는 다음과 같이 한 명령을 여러 줄에 나누어 써도 전혀 상관없다.

 

#include <stdio.h>

void

main() {

              printf(

          "korean")

          ;}

 

물론 이렇게 소스를 작성하면 별로 보기에 좋지 않으므로 가급적이면 구조를 한눈에 파악할 수 있도록 빈줄과 공백을 적당히 끼워 넣고 들여 쓰기를 하는 것이 좋다. C 언어가 소스의 형식에 별 제한을 두지 않기 때문에 소스는 개성에 따라 자유롭게 작성할 수 있다. 이에 비해 베이직같은 언어는 프리포맷을 지원하지 않기 때문에 다소 불편하다.

 C 프로그램의 구조는 대체로(절대적이지는 않다) 다음과 같다.

 

#include <...>

#define ...

함수의 원형

전역변수

 

void main()

{

     코드

}

함수

함수

함수

 

프로그램 선두에 #include, #define 같은 전처리문이 오고 이어서 함수 원형, 전역변수 선언이 온다. 그리고 프로그램의 본체인 main 함수와 그 외 필요한 함수들이 이어진다. 물론 꼭 이 구조대로 작성해야 한다는 강제가 있는 것은 아니지만 대부분의 C 소스는 이런 구조로 되어 있다.

 


List of Articles
분류 제목 글쓴이 날짜 조회 수
Vegas Pro 베가스 강좌 목록 아방스 2017.09.28 890
파이널컷X 파컷 강좌 목록 아방스 2017.06.18 761
C언어 파일읽어서 배열에 넣고 다시배열에서 읽어서 화면에 출력 정체불명 2012.01.21 2702
C언어 소코반(푸쉬푸쉬) 구조 정체불명 2012.01.21 2865
기타 [libGDX] libGDX 시작하기 3 에돌이 2012.01.21 4042
C언어 소코반 리팩토링 푸쉬푸쉬 file 정체불명 2012.01.25 2573
시네마4D Cinema 4D r13 Tutorial: Particles Transition to Text - PolyFX 아방스 2012.01.25 5367
C언어 푸쉬푸쉬 data structure.h 의 내용 file 정체불명 2012.01.25 2596
C언어 푸쉬푸쉬 func.h파일 file 정체불명 2012.01.25 2868
C언어 func.h함수소개 정체불명 2012.01.25 2357
C언어 소코반 실행파일+소스+스크린샷 file 정체불명 2012.01.25 3523
기타 PHP 1강. 내가누구 2012.02.24 2036
기타 PHP 2강. 내가누구 2012.02.24 1993
플러그인 VC Reflect [반사되는 이미지 만드는 플러그인] 1 file 아방스 2012.03.28 7018
게임기획 프롤로그의 여러가지 작성 방법 2 아방스 2012.04.17 4135
기타 게임을 처음 제작하시는 초심자 분들께 7 TheEK 2012.07.03 2560
기타 XNA로 게임만들기 - 1. 인사겸 소개 3 file 재훈군 2012.08.03 3116
기타 XNA로 게임만들기 - 2. 강의에 앞서 C#의 문법 1 file 재훈군 2012.08.03 4213
기타 XNA로 게임만들기 - 3. 자신만의 라이브러리를 만들자. 7 file 재훈군 2012.08.03 3454
플래시 매우 쉽고 편리한 액션스크립트(추가중) 코르뉴 2012.08.06 2625
기타 VirtualDub, Avanti, AviSynth를 사용한 초보적인(?!) DVD -> 동영상 파일 변환법. Alkaid 2012.08.27 3480
기타 PCSX2 자체 캡처기능으로 캡처한 동영상 인코딩하기 file Alkaid 2012.09.09 3257
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Next
/ 19