티스토리 뷰

반응형

이전 글

2020/12/19 - [코딩 공부] - C언어 기초 : C언어 프로그래밍 시작하기

 

C언어 기초 : C언어 프로그래밍 시작하기

이전 글 2020/12/19 - [코딩 공부] - C언어 기초 : C언어란? C언어 기초 : C언어란? 요즘 공부하고 있는 c언어에 대해 복습하는 겸 배운 부분을 글로 정리해 보려고 합니다. (전공자 아님) 1. 프로그래밍

hgu-can.tistory.com

 

 

 

 

저번 포스트에서 Hello, World!를 출력해 보았습니다. 

 

 

 

 

사실은 이렇게 맨 마지막에 return;까지 붙이는 것이 맞지만 꼭 붙이지 않아도 실행이 잘 되기 때문에 빼고 쓰셔도 괜찮습니다. 마지막에 자꾸 까먹는다고 걱정하지 않으셔도 된다는 뜻 ㅋㅋ 

 

각 부분에 대한 설명을 드리자면

 

#include : ~를 포함한다. (전처리 문)

 

<stdio.h> : 입출력을 위한 헤더파일

* 헤더파일 : 필요한 함수를 사용하게 해 주는 파일

 

void main() : 컴퓨터가 제일 먼저 확인하는 기본 함수. 하나만 사용할 수 있으며 프로그램의 시작과 끝이 포함 됨.

 

printf("Hello, World!"); : 화면에 문장을 출력하는 함수.

명령어를 쓸 때는 마지막에 세미콜론 ' ; ' 을 꼭 붙여서 문장이 끝났다는 것을 컴퓨터에게 알려줍시다. 

 

 

 

만약 세미콜론을 쓰지 않으면 위 사진처럼 오류가 나면서 코드가 실행되지 않습니다. 

그러니까 함수의 중괄호 안에서 명령문을 쓸 때는 마지막에 세미 콜론 ' ; ' 을 썼는지 꼭 확인합시다. 

가끔 코드를 제대로 쓴 것 같은데 왜 실행이 안 되지? 하고 보면 명령문 맨 뒤에 세미 콜론을 쓰지 않고 그렇습니다...ㅋㅋ(제 얘기^^;)

코드 블럭에선 줄 앞에 빨간 점을 딱 집어서 보여주니까 어느 줄이 문제인지 알아보기 쉬운데 비주얼 스튜디오를 쓰면 아래 콘솔창에 여러 안내 문구?가 같이 나와서 처음엔 쉽게 알아보기가 힘들더라고요...

코드가 실행되지 않는 이유의 90%는 어느 줄에 세미 콜론을 쓰지 않았거나 명령어에 오타가 났거나 하는 경우입니다.

 

return; : 메인 함수의 종료.

 

 

 

코드를 시작하는 메인 함수를 쓸 때 void main() 말고 int main()을 써도 되는데 void와 int main의 차이는 return;을 쓰느냐 return 0;를 쓰느냐의 차이라고 보면 됩니다.

마찬가지로 마지막에 return 0;는 생략 가능합니다. 

 

C 프로그래밍에서 모든 함수를 실행할 때 함수 안에 return 값이 있는지 없는지 확인하고 return이 있으면 return 옆에 써진 값을 내뱉고 해당 함수를 종료합니다. 

(사실은 반환하다(return하다)가 맞는 말이지만 좀 더 쉬운 이해를 돕기 위해 내뱉는다고 표현하겠습니다.)

함수는 옛날옛적 수학시간에 배웠던 것이지만 영어로는 function으로 말그대로 프로그램을 실행하는 기능을 수행하기 위한 명령문들을 담고 있기 때문에 function이라 부르게 되었고 이게 한글로 번역되다 보니 함수라는 단어를 사용하게 된 것 같습니다.

구구절절 설명하는 이유는 저도 처음엔 함수라는 것 자체가 이해가 되지 않았었기 때문에...ㅎ

몇몇 단어들은 원래 영단어 뜻을 보면 더 이해가 쉬운 경우가 있습니다. 

 

아무튼 void와 int의 차이는 영어 뜻 그대로 빈 것이냐 숫자형이냐 구분하는 것인데 함수를 쓸 때 void형인지 int형인지에 맞게 return 값을 적어줘야 합니다. 

void형 함수에선 빈 것이니까 값을 내뱉긴 하는데 특정하게 정해진 값을 쓸 수는 없기 때문에 그냥 return; 만 사용.

int형 함수는 숫자형 값만 내뱉을 수 있기 때문에 return을 쓸 때 숫자를 같이 적어줘야 하는데 그 중 아무것도 없는 수는 0이잖아요? 그래서 int main()이라고 쓰면 return 0;를 쓴다 뭐 이렇게 생각하시면 됩니다. 

 

지금은 저거 다 모르셔도 되고 나중에 함수 파트를 공부하고 프로그램을 만들기 위한 함수들을 계속 만들다 보면 어느순간에 이해가 가는 부분이니까 그냥 그렇구나 하고 넘어가십시오...ㅋㅋ

메인 함수에서 return을 꼭 쓰지 않아도 모든 명령문이 끝나면 자동으로 종료되기 때문에 당분간은 잊고 계셔도 괜찮습니다. 

 

만약 다른 프로그램에서 c 프로그래밍을 할 때 void main() 함수를 썼을 때 실행이 되지 않으면 int main() 함수를 쓰면 대체로 실행이 되는 편이었습니다. 

코드 블럭에선 둘 다 잘 되니까 아무거나 쓰셔도 괜찮습니다. 

 


1. Escape 문자는 뭘까?

 

문자열 내부에서 사용되는 명령어로 줄바꾸기, 탭 크기만큼 띄우기 등 기능이 있습니다. 

컴퓨터는 띄어쓰기는 인식하는데 그냥 엔터만 치면 줄을 바꾼 것으로 인식하지 않기 때문에 글을 출력할 때 줄을 바꿔서 보여주고 싶으면 줄을 바꾸라는 명령어를 함께 넣어줘야 합니다. 

 

Escape 문자에는 다음과 같은 것들이 있습니다. 

 

\n : 줄 바꾸기 (엔터)

\r : 줄의 처음으로 (Carriage Return)

\b : 커서를 한 칸 왼쪽으로 이동 (Back Space)

\t : 탭 크기만큼 띄우기

\" : " (큰 따옴표) 출력

\a : 소리 출력

 

\는 프로그램에 따라 / 가 왼쪽으로 기울어진 형태로 출력됩니다. 티스토리에서는 \ 이렇게 출력이 되네요. 

 

그럼 코드 블록에 이렇게 쓰고 F9를 눌러볼까요?

 

그러면 위와 같은 프로그램이 실행됩니다. 

5번째 줄에서 C 다음에 \t을 써서 탭 크기 만큼 띄어쓰기가 되었고 그 다음에 Language가 출력되었습니다. 

 

Language 뒤에 \n을 썼기 때문에 Hello 부터는 다음 줄에 출력이 되었고요. 

 

Hello 다음에 \b를 두 번 썼더니 다음 줄에 오는 문자 중 Hi 두 글자는 지워졌는데

사실 이건 지워진 것이 아닙니다. 

\b는 \b를 쓰는만큼 커서를 앞으로 보내주는 명령어입니다. 

그래서 줄을 바꾼 다음에 Hi를 출력하긴 했는데 커서가 앞으로 두 칸 이동한 다음에 \r 다음 내용을 출력해서 지워진 것처럼 보이는 것입니다. 

 

8번째 줄에서는 \" 를 썼더니 큰 따옴표가 표현되어 "밥은 먹었니?" 가 출력되었습니다. 

 

그리고 F9를 눌러 실행했을 때 윈도우즈 시스템 알림음 같은 소리가 들릴 것입니다. 

\a를 써서 나오는 소리입니다. 

\a를 지우고 다시 실행해 보시면 아무 소리도 들리지 않을 것입니다. 

 

 

+) % 출력하기

 

%를 출력해야 할 땐 그냥 쓰면 출력이 될까요?

일단 위처럼 입력해 볼까요?

 

앗 분명히 %를 썼는데 출력이 되지 않네요...

% 또한 명령문을 쓸 때 자주 사용되는 서식 문자이기 때문에 위처럼 하나만 쓰면 출력이 되지 않습니다. 

 

이번엔 두 개를 써 봅시다.

 

짠 드디어 정상적으로 출력이 됩니다. 

%를 한 번 더 써서 이번에는 서식 문자가 아니라 일반 문자로 쓸 거니까 출력해라고 알려주는 뭐 그런 정도라고 생각하시면 됩니다. 

 

서식 문자에 관해서는 다음 포스트로 이어집니다. 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함