04 – 특수 문자 (요약)

각 언어와 해당되는 함수마다 특정한 기능을 하는 문자가 존재한다. 이런 문자를 특수 문자라고 하는데, 이런 문자들에 대해서는 여러 가지가 존재한다. 처음 공부할 때에는 새로운 기능이 하나 나올 때마다 하나 하나 확인하면서 공부를 해야 할 정도이다. 한번에 싹 정리하면 많겠지만 자주 쓰이는 건 몇 개 되지 않으니 금방 익힐 수 있다.

그럼 이런 특수문자는 어떻게 쓰이는 것인지를 이전에 만든 소스를 수정해서 하나 더 추가해 보겠다.

%e1%84%89%e1%85%b3%e1%84%8f%e1%85%b3%e1%84%85%e1%85%b5%e1%86%ab%e1%84%89%e1%85%a3%e1%86%ba-2017-02-02-%e1%84%8b%e1%85%a9%e1%84%92%e1%85%ae-9-40-55

printf 문장을 하나 더 추가하였다. 그러나 다른 점이 있다면, 안에 있는 텍스트 뒤에 \n이 있냐 없냐이다. 이 \n은 실행 커서를 다음 줄로 넘기는 특수 문자인데, 이것이 있는 것과 없는 것이 어떻게 다른지를 보여주도록 하겠다.

이것이 실행 결과이다. 첫 번째 줄에 있는 “hello wolrd!” 문장이 출력된 뒤, 다음 줄로 넘어가서 “작성자: @KyulingLee” 라고 되어 있다. 이 것이 바로 \n에 의해 커서가 다음 줄로 넘어갔기 때문이다. 그러나 두 번째 문장 뒤에는 바로 이어져서 글이 써져있다. \n으로 다음 줄로 넘어가지 않게 되면 그대로 쭉 이어져서 글이 써졌을 것이다. \n을 빼고 글을 쓴 것이 바로 아래와 같다.

이러한 특수 문자들은 여러가지로 쓰이는데 앞으로 진행될 때마다 확인하면서 외우면 된다.

[뻘짓?] 이어뮤에 뻘짓

보통 이어뮤를 장식하기 위해 많이들 사용하는 방법이 바로 라벨을 만들어서 인쇄해서 붙이는 그런 작업을 하는 것이다. 많은 사람들이 하고 있는데… 관심은 있지만 걍 그러려니 했다. 그나마 내 카드라는 거 구분하기 위해서 구글플러스 스티커 붙여놓은 게 전부였다만…ㅇㅅㅇ;;;

이게 걍 신용카드 사이즈다. 그렇다면 걍 신용카드 사이즈에 뭔가 걍 덧붙이면 좀 더 있어보이지 않을까 싶었는데….

있다. 잉여분의 카드가.

…..CGV 포토티캣이다.

보면 사이즈도 딱 맞는다. ㅇㅅㅇ!

그래서 붙여보았다만… 난 손이 꼼꼼하질 못해서 밀리미터 단위로 살짝 틀어졌다만…

이어뮤가 삽입식이 아니기 때문에 충분히 쓸만하겠다. ㅇㅂㅇ! 주말에 리플렉에 한번 찍어봐야지. 얼마나 눈에 띄나. ㅇㅂㅇ

03 – C 언어의 구조 (기본)

어떤 언어든 가장 기본이 되는 언어를 먼저 학습하는 것은 당연한 것이다. 그리고 그걸 제일 잘 보여주는 것이 바로 “Hello World!”다. (앞으로 어떤 언어든 제일 먼저 시작하면 보게 될 것이다.)

이전에 작성한 프로그램을 통해서 구조를 살펴본다.

  1. #include <stdio.h>는 기본적인 입출력 함수와 같은 정보를 포함하는 기능으로 컴파일 전에 먼저 처리된다. stdio.h 파일에 있는 다양한 정보와 기능을 이 프로그램에서 사용할 수 있다. 이렇게 선언하여 사용할 수 있는 파일을 헤더 파일이라고 하는데, 시스템 디렉토리에서 기본으로 제공되는 헤더 파일도 있고, 개발자가 직접 개발하여 사용하기도 한다.
  2. main()은 C 프로그램에서 반드시 필요로 하는 함수로, 프로그램은 이 main 함수에서부터 시작된다. 그러므로 main() 함수가 없으면 프로그램이 될 수 없다. main 함수의 앞에 있는 int의 경우에는 이 함수가 나중에 어떤 값의 유형을 반환하는지를 나타낸다. main 함수또한 기본형을 가지고 있는데, 환경에 따라 조금씩 사용이 다르다.
  3. {는 함수가 시작됨을 알려준다. 모든 함수는 {}로 둘러쌓여있다. {로 시작하고, }로 끝난다.
  4. printf(“hello world! \n”); printf는 stdio.h에 정의되어 있는 함수이고, “” 안에 있는 문자열을 출력하는 함수이다. 그리고 끝에 있는 세미콜론(;)은 모든 문장 뒤에 꼭 있어야 하는데, 이것은 문장이 끝나는 것을 의미한다. 문장 뒤에 세미콜론이 없으면 문장으로 인정받지 않기 때문에 컴파일 중에 오류를 발생시키게 된다.
  5. return 0는 함수에서 반환하는 반환값을 정의한다. main 함수에서의 숫자형 기본 반환값은 0이다. (정상종료)
  6. }는 main 함수가 끝났다.

단 몇 줄의 코드로도 충분히 분석이 될 수 있다.

여기서 설명이 좀 부족한 부분이 있는데 그 부분에 대해서 추가적으로 작성한다.

프로그램 안에 임의의 프로그램이나 기능을 삽입하기 위해서는 헤더라는 것을 통해서 삽입을 진행한다. 그렇게 삽입된 것이 바로 #include 에 있는데, 시스템에서 지원하는 기능을 사용하면 <>로 삽입을 진행하고, 다른 사용자가 만든 것을 삽입하려고 하면 “”에 삽입을 진행한다. 이렇게 #으로 시작되는 부분을 전처리기 지시자라고 하는데, 나중에 좀 더 자세한 글을 적어야 한다.

그리고 C언어의 프로그램은 작성된 순서대로 순차적으로 진행된다. 문장이 순서대로 실행되기 때문에 문장인지 아닌지가 제대로 구분되어야 하는데, 그 구분을 하는 것이 바로 세미콜론이다.

02 – 리눅스에서 C 프로그래밍

리눅스 배포판 중 원하는 배포판을 설치하여 진행하면 된다. 규링은 우분투가 좀 편한 편이라 우분투를 주로 이용한다.

리눅스에서 프로그램을 작성하고 이를 실행하고자 한다. 과정을 살펴보면

  1. 에디터(vi,  vim)를 이용하여 C언어로 된 프로그램을 작성한다.
  2. gcc를 이용하여 컴퓨터가 이해할 수 있는 형태(실행 파일)로 변환한다. (컴파일)
  3. 실행 파일을 실행한다.

이렇게 된다. 코드가 좀 많은 프로그램의 경우에도 이 과정에 대해서는 변함없고, 그 많은 소스코드를 하나의 실행 파일로 변환하기 위해 자동화해주는 툴들을 이용하기도 한다. 그런 툴들에 대해서는 나중에 다루기로 하고, 일단은 저 과정을 실행해보는 가장 기본적인 단계인 “hello world!”를 출력하는 과정을 보도록 한다.

원하는 디렉토리로 이동을 한 뒤, vi를 이용하여 hello.c 파일을 생성한다.

실행된 에디터를 이용하여 소스코드를 작성한다. vim 에디터의 간단한 사용을 알아야하는데, 해당 내용도 별도로 정리된 문서를 참고하거나 직접 검색해보면 많이 나온다. 간단한 수정을 위해서는 i 키를 입력하면 삽입 모드로 바뀌는데, 그 상태에서 직접 작성한다. 그 후에 esc를 눌러 삽입 모드를 종료 후 :wq 를 입력하여 저장과 동시에 종료한다.

파일이 잘 생성되었는지 확인한다. 그리고 나서 gcc를 통해 컴파일을 진행한다.

출력 파일의 기본형인 a.out 파일이 생성되었다. 이름을 지정하지 않아서 자동으로 a.out이 생성되었다.

직접 실행해보면 출력이 되는 것ㅆㅅ을 확인할 수 있다. 현재 디렉토리에 있는 파일을 실행하기 위해 앞에 ./를 입력하였다.

과정에 대해서는 살펴보았다. 이젠 C언어에 대한 공부와 함께 vi 사용법, gcc 사용법을 알면서 하나하나 진행해 가면 된다.

01 – 리눅스 환경에서의 C

리눅스 운영체제의 대부분이 C로 작성되어 있고, 리눅스의 대부분의 어플리케이션도 기본적으로 C로 작성되어있다. 리눅스에서 프로그래밍은 기본적으로 C 프로그래밍을 의미하였다. 요즘은 뭐 다양한 언어, 다양한 환경을 이용하니 그닥 와닿는 것이 없긴 한데, 요즘 하고 있는 것 땜에 다시 복습차원에서 좀 정리가 하고싶었다.

리눅스와 C와의 관계에 대해서는 이정도의 간단한 설명이면 될 것이다. C언어, 리눅스에 대한 것들은 위키백과에서부터 시작해서 여기저기 자세히 나와있다보니 설명은 하지 않겠다.