기타 강좌

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 886
파이널컷X 파컷 강좌 목록 아방스 2017.06.18 757
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [변수의 종류] 2 -Zennys- 2009.06.13 2767
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [변수의 정의] 2 -Zennys- 2009.06.13 2752
C언어 [ - Zennys -] 제니스의 C언어 강좌 [ 프로그램의 구조 ] -Zennys- 2009.06.13 1984
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [컴파일러] 4 -Zennys- 2009.06.13 1980
C언어 [ - Zennys -] C언어의 기초 ... 8 file - Zennys - 2009.06.08 1861
기타 3D MAX 2008 - subdivison 모델링 1 아방스 2009.05.28 1975
기타 그래픽 드라이버 삭제 및 재설치 방법 1 아방스 2009.05.28 3099
기타 클로버 자동업데이터기 사용법 4 file fgdr147 2009.05.21 2021
C언어 정체불명 입문자를 위한 요약노트 01 12 정체불명 2009.05.16 2010
C언어 정체불명 강의노트 개발툴의 설치 2 정체불명 2009.05.16 2246
기타 바이러스 제작 모험기 : 상편.shutdown명령어! 4 file 창조자 신 2009.05.16 3779
기타 인스톨 팩토리 사용법~ 5 file Skybound 2009.05.11 3772
기타 [VB6 강좌] 1~5강 강의평가 2 독도2005 2009.05.05 2256
C언어 락발라드 구구단~ file 정체불명 2009.05.02 2559
C언어 스릴 쇼크 서스펜스!!!!!!!! 정체불명 2009.05.01 1967
C언어 시작의반 6 file 정체불명 2009.05.01 2166
기타 게임제작 관련 학과들 7 아방스 2009.03.12 3061
기타 [VB6 강좌] 제5강 - 제어문 1 독도2005 2009.02.26 2661
기타 [VB6 강좌] 제4강 - 변수와 데이터형 1 독도2005 2009.02.25 2075
XpressEngine XE1.1.5로 업후 위젯들이 문제를 일으킬때 수정방법 아방스 2009.02.21 3033
Board Pagination Prev 1 ... 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Next
/ 19