기타 강좌

3-5-나.확장열

문자 상수는 홑따옴표안에 문자를 써서 표기한다. 문자 Y에 대한 문자 상수는 'Y'다. 이 상수를 키보드로 입력하려면 키보드에서 '를 치고 Y를 치고 '를 치면 된다. 그런데 따옴표안에 직접 입력할 수 없는 문자가 있다. 대표적으로 개행 코드를 들 수 있는데 Enter키를 누르는 즉시 정말로 다음 줄로 내려가 버리기 때문에 따옴표안에 개행 코드를 담아서 표현하는 것은 불가능하다.

또한 문자 상수를 표현할 때 사용하는 홑 따옴표 구두점도 문자 상수로 바로 표현할 수 없다. ''' 이렇게 쓰면 두 번째 '가 닫는 따옴표인지 문자 '를 나타내는지 컴파일러가 구분할 수 없다. 그래서 키보드로 직접 입력할 수 없는 문자들은 좀 특수한 방법으로 표현하는데 이를 확장열(Escape Sequence)이라고 한다. 확장열은 백슬레쉬() 문자 다음에 기호 하나를 써서 표현한다.

 

확장열

코드

설명

a

0x07

소리

b

0x08

스페이스

t

0x09

n

0x0a

개행

x##

0x##

16 코드

###

0###

8 코드

0x5c

백슬레쉬

'

0x27

홑따옴표

"

0x22

겹따옴표

?

0x3f

물음표

 

개행 코드는 n으로 표현하는데 이 코드는 First예제에서 이미 실습해 보았다. 탭이나 백 스페이스 같은 문자도 직접 키보드로 입력해서는 따옴표안에 표기할 수 없기 때문에 확장열로 표기해야 한다. 홑따옴표 문자 하나는 '''와 같이 표기할 수 없고 확장열을 사용해서 '''와 같이 표기해야 한다.

확장열 표기에 문자를 사용하기 때문에 문자 자체도 확장열이 될 수밖에 없다. 16진 코드는 키보드에 없는 문자에 대해 코드를 직접 쓸 때 사용한다. 'A'는 'x41'과 동일하다. 16진 코드를 확장열로 표기할 때 다음의 x는 반드시 소문자로 써야 하며 대문자는 인정하지 않는다. 문자열 상수내에 16진 코드를 직접 쓸 경우 16진수로 인식되는 모든 문자를 확장열로 취급한다는 점을 주의하자. 'x53trike"는 x53이 s이므로 "strike"이지만 "53econd"는 다음의 53ec까지를 16진수로 해석해 버리므로 "second"가 되지 않고 에러로 처리된다. 왜냐하면 53ec는 문자 코드 범위 바깥이므로 하나의 문자가 아니기 때문이다. 이런 경우는 16진 코드를 쓰지 않거나 다른 방법으로 문자열을 표기해야 한다.

확장열을 쓰는 이유는 꼭 키보드로 표현하지 못해서뿐만 아니라 환경에 따라 달라질 수 있는 코드를 논리적으로 표현하기 위해서이다. 개행을 하는 방식은 시스템마다 다른데 윈도우즈에서는 CR, LF의 조합으로, 유닉스는 LF만으로, 매킨토시는 CR만으로 개행 문자를 표현한다. C는 이런 방식에 상관없이 개행을 표현할 수 있는 확장열을 제공하고 프로그래머는 개행이 필요할 때 n이라고만 적으면 된다.

탭의 경우 일정한 자리를 띄우는 것이 아니라 현재 위치에서 다음 탭 위치로 이동하는 기능을 하므로 소스상에 입력된 탭에 의해 띄워진 빈칸과 실제 출력될 위치의 탭 크기가 다를 수 있다. 그래서 탭키를 문자열 상수에 직접 쓰지 않고 t 확장열로 표기하여 출력되는 상황에 맞게 탭을 적용하도록 한다.

TAG •

List of Articles
분류 제목 글쓴이 날짜 조회 수
Vegas Pro 베가스 강좌 목록 아방스 2017.09.28 912
파이널컷X 파컷 강좌 목록 아방스 2017.06.18 798
기타 카일 쿠퍼의 강의 입니다. Kyle Cooper: The Film Inside the Film (lecture) 아방스 2011.01.17 2415
기타 악축파일 압축해제 방법 설명 4 아방스 2011.01.21 2053
에프터 이펙트 붓 칠해지는 느낌의 자막 1 file 아방스 2011.02.27 3341
에프터 이펙트 After Effects CS5.5 / 기능 아방스 2011.04.16 2673
시네마4D 시네마4D R12 버전 한글 도움말 파일 아방스 2011.04.16 3362
시네마4D [나무 의자 만들기] Model A Wooden Chair In Cinema4D 1 file 아방스 2011.04.18 3405
시네마4D [예제/프로젝트] 구름 애니메이션 아방스 2011.05.25 2621
기타 번외 2편 : 게임 엔진 서론 1 코르뉴 2011.06.17 2780
기타 Blender 3D 게임 엔진 1 에돌이 2011.07.08 4654
게임기획 게임,개발기획의 기초 9 file 공룡칸드 2011.07.31 2905
C언어 C언어 기초 - 1. 개요 5 완폐남™ 2011.08.01 3184
기타 RPG-Builder 3D - 캐릭터 그래픽을 드래곤 으로 바꿔보자! 5 file 더블오렌지 2011.08.08 2464
기타 캐릭터고르는 이벤트 만들기 1 file ☆고진수 2011.08.25 2263
플래시 플래시 MX 활용법! 1 은색바람 2011.09.09 2796
css display 속성 아방스 2011.09.17 2217
C언어 [C 언어 강의] 1. 프로그램 작성 방법 4 마린레이 2011.09.24 4842
C언어 [C 언어 강의] 2. 프로그램의 기본 구조 마린레이 2011.10.05 1607
C언어 [C 언어 강의] 데이터 출력 함수 printf() file 마린레이 2011.10.12 1746
기타 응용..에 관한 간단한 고찰.(??) 개촙포에버 2011.10.13 1770
기타 게임 엔진 中 [렌더링 엔진] 비교 3 아방스 2011.10.24 3425
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Next
/ 19