기타 강좌

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
기타 3D MAX 2008 - subdivison 모델링 1 아방스 2009.05.28 1975
XpressEngine 2011.11.05 XE Camp - XE 스킨 제작 가이드 아방스 2011.11.07 1976
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [컴파일러] 4 -Zennys- 2009.06.13 1980
C언어 [ - Zennys -] 제니스의 C언어 강좌 [ 프로그램의 구조 ] -Zennys- 2009.06.13 1984
기타 동영상에서 원하는 부분만 잘리서 편집하기 아방스 2010.11.05 1986
XpressEngine 2011.11.05 XE Camp - XE를 활용한 웹 사이트 구축 아방스 2011.11.07 1989
웹디자인 관련 웹 디자인 무료 버튼 템플릿! - Clean Download Buttons Pack file 아방스 2011.12.07 1992
기타 PHP 2강. 내가누구 2012.02.24 1993
C언어 [비쥬얼 C++ 동영상 강좌] 08회 GDI 를 배우자 - 2 아방스 2009.01.12 1998
C언어 정체불명 입문자를 위한 요약노트 01 12 정체불명 2009.05.16 2011
웹디자인 관련 웹 디자인 무료 버튼 템플릿! - “Call To Action” Button file 아방스 2011.12.07 2015
XpressEngine 2011.11.05 XE Camp - XE 마켓 소개 아방스 2011.11.07 2016
웹디자인 관련 버튼 psd 템플릿사이트 모음 아방스 2011.12.07 2021
기타 클로버 자동업데이터기 사용법 4 file fgdr147 2009.05.21 2023
C언어 #include 지시어에 대해 1 [Dark].Angel 2009.01.14 2025
기타 PHP 1강. 내가누구 2012.02.24 2036
기타 자료업로드실 이용방법 아방스 2008.02.25 2047
기타 악축파일 압축해제 방법 설명 4 아방스 2011.01.21 2052
기타 [루비][GUI]윈도우 창을띄우기 file 자연철학의수학적원리 2013.10.25 2070
기타 [VB6 강좌] 제4강 - 변수와 데이터형 1 독도2005 2009.02.25 2075
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Next
/ 19