C,C++

[C] C언어 공부하기 2. 첫번째 예제

드물지만성숙하게 2019. 12. 30. 13:56

출처 : http://www.soen.kr/

 

SoEn:소프트웨어 공학 연구소

 

www.soen.kr

 

2-2-가. First 분석

 

#include <stdio.h>

: stdio.h라는 헤더 파일을 포함하라는 뜻. 

 

void main()

main은 함수 이름인데 C는 항상 main 함수에서부터 실행 시작함. 

void는 함수의 리턴값이 없다는 뜻.

void main()이란 곧 여기가 프로그램의 시작점이라는 뜻.

{}는 프로그램의 끝과 시작을 표시.

 

printf("korea\n");

printf는 문자열을 화면으로 출력하는 함수. 

2-2-나. 프로젝트

First예제의 경우 프로그램의 실체인 코드는 First.cpp 파일에 모두 작성되어 있는데 이 소스를 만들기 전에 프로젝트를 반드시 먼저 만들어야 했다. (비주얼 C++에서)

프로젝트는 하나의 실행 파일을 제작하는데 필요한 관련 파일의 집합이다. 

 

실행 파일 하나를 만들기 위해 필요한 모든 구성 파일을 하나의 프로젝트에 포함시켜 두면 이 파일들을 관리하기에 편리하다. 

비주얼 C++은 프로젝트보다 더 상위의 개념인 솔루션(Solution)까지 지원한다. 솔루션(비주얼 C++ 6.0에서는 워크 스페이스)이란 여러 개의 프로젝트를 모아 놓은 것이다

 

2-3-가. 삼각형 그리기

출력 결과

 

*

**

***

****

*****

******

*******

********

*********

**********

***********

************

*************

**************

***************

 

2-3-나 생략

 

2-4 프로그램의 구성 요소

2-4-가. 구성 요소

C언어는 일곱 개의 구성 요소로 나누어지는데 각각의 구성 요소들은 모두 고유한 특징을 가지고 있다.

 

1.키워드(Keyword)

C언어 자체가 의미를 미리 정해 놓은 단어들이며 예약어(Reserved word)라고도 한다.

-> auto, case, cdecl, const, char, continue, default, do, double, else, enum,

extern, float, for, goto, if, int, long, register, return, short, signed,

sizeof, static, struct, switch, typedef, union, unsigned, void, volatile,

while

 

아래는 C++에서 새로 추가된 키워드들, 주로 클래스와 관련

-> asm, class, delete, friend, inline, mutable, new, operator, private,

protected, public, template, this, virtual, explicit, ....

 

2. 명칭(Identifier)

명칭은 사용자가 직접 만들어서 사용하는 것이다. 변수나 함수같은 것들은 다른 것들과 구분(Identify)되어야 하므로 자기만의 고유한 이름을 가져야 한다. 명칭은 사용자가 직접 정의하는 것이므로 이름을 자유롭게 붙일 수 있다.

 콜론이나 따옴표, 역슬레쉬 등 예약된 기호는 쓸 수 없다.

 키워드는 쓸 수 없다. 키워드는 언어 자체가 이미 사용하고 있는 단어이기 때문에 명칭으로 사용해서는 안된다. int, if, while 같은 단어는 그 의미가 미리 정해져 있다.

 알파벳, 숫자, 밑줄기호(_)로 구성된다. 그 외의 콜론, 따옴표, 괄호 같은 기호는 명칭으로 쓸 수 없다. 한글도 알파벳이 아니므로 명칭으로는 사용할 수 없다. 명칭 중간에 공백이 와서도 안된다.

 첫 문자는 알파벳이나 밑줄기호만 올 수 있다. 숫자는 명칭의 중간에는 올 수 있지만 처음에는 오지 못한다. Num1, Inch2Cm은 적합한 명칭이지만 3D, 4you 같은 명칭은 숫자가 앞에 있으므로 적합한 명칭이 아니다.

 C언어는 대소문자를 구분한다. 따라서 Score, score, SCORE는 철자는 같지만 모두 다른 명칭으로 인식된다. 명칭의 대소문자 구성은 가급적이면 일관되게 작성하는 것이 좋다. 예를 들어 모두 소문자로 작성하거나 아니면 첫 문자만 대문자로 쓰는 것이 좋다.

 

3. 상수(Constant)

변수의 반대되는 개념이며 고정된 값을 가지는 식이다.

 

4. 연산자(Operator)

계산을 지시하는 기호들을 연산자라고 한다

 

5. 구두점(Punctuator)

구성 요소를 구분하여 좀 더 분명한 의미를 가지도록 하는 구두점이 있다. 쉼표, 따옴표, 괄호, 세미콜론 등이 구두점으로 사용된다.

 

6. 공백 문자(White Space)

스페이스와 탭, 개행 코드 등이 공백이다. 공백 문자는 눈에 보이지 않지만 구성 요소들을 구분하는 아주 중요한 역할을 한다. 

 

7. 주석(Comment)

설명을 위해 삽입되는 문자열이다. 

주석은 /*로 시작해서 */로 끝나거나 한줄내에서만 주석을 쓰고 싶을 때는 //를 사용한다. 구형 C 컴파일러는 /* */만 주석으로 인정하지만 최신 컴파일러들은 모두 //도 주석으로 인정한다. 주석은 어디까지나 문자열일 뿐이므로 한글이나 기호 등도 자유롭게 사용할 수 있다. 다음이 주석의 예이다.

 

2-4-가. 프로그램의 구조

1. C언어는 대소문자를 구분하므로 키워드나 명칭 등을 작성할 때 대소문자 구분에 유의해야 한다. 

main을 Main으로 써도 안되며 예약어들도 대소문자에 맞게 써야 한다. 

 C의 예약어들은 모두 소문자이고 변수나 함수명도 대부분 소문자로 작성하므로 가급적이면 소문자만 쓰는 것이 좋다

 

2. C 프로그램은 항상 main 함수로 시작한다. 

 

3. 모든 문장은 세미콜론으로 끝이 나는데 세미콜론은 자연어의 마침표에 해당한다.

4. 문법에만 맞으면 한줄에 붙여 쓸 수도 있고 여러 줄에 나누어 쓸 수도 있다. 조금 여백을 주기 위해 괜히 한 줄을 비워 둘 수도 있으며 들여쓰기나 공백의 개수도 편한대로 작성할 수 있다.

 

#include <stdio.h>

void main() {printf("korea\n");}

 

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

 

#include <stdio.h>

void

main() {

              printf(

          "korea\n")

          ;}있다.

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

 

#include <...>

#define ...

함수의 원형

전역변수

 

void main()

{

     코드

}

함수

함수

함수