문자 | 의미 | 기능 |
\n | new line | 칸을 다음 줄 앞으로 이동 |
\b | backspace | 한 칸 뒤로 한 칸 이동 |
\t | tab | 일정 간격 띄움 |
\r | carriage return | 현재 줄의 처음으로 이동 |
\0 | null | 널(0) 문자 출력 |
\’ | singe quote(‘) | 작음 따옴표 출력 |
\” | double quote(“) | 큰 따옴표 출력 |
\a | alert | 벨 소리 발생 |
\\ | backslash | 역 슬래시 출력 |
\f | from feed | 한 페이지 넘김 |
제어문자는 암기 과목입니다. 영어뜻으로 유추하는게 그나마 편한 암기법입니다.
출력을 보면 띄어쓰기와 수평 탭등 키보드의 명령 같습니다.
Pure모드의 디스어셈블리를 보면 문자열이 주소로 push되는걸 알수있습니다.
함수의 시작은 push ebp/ mov ebp,esp로 암기하는데 편합니다. 스택 ebp의 위치를 ebp가 가르키게합니다.
ASCII는 영어및 문자의 규칙입니다. 한글은 2바이트입니다.
한글 바이트는 위를 참고하시면 됩니다. ASCII는 구글링으로 충분히 얻을수있습니다.
ASCII (1977/1986) | ||||||||||||||||
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
0_ 0 |
NUL 0000 |
SOH 0001 |
STX 0002 |
ETX 0003 |
EOT 0004 |
ENQ 0005 |
ACK 0006 |
BEL 0007 |
BS 0008 |
HT 0009 |
LF 000A |
VT 000B |
FF 000C |
CR 000D |
SO 000E |
SI 000F |
1_ 16 |
DLE 0010 |
DC1 0011 |
DC2 0012 |
DC3 0013 |
DC4 0014 |
NAK 0015 |
SYN 0016 |
ETB 0017 |
CAN 0018 |
EM 0019 |
SUB 001A |
ESC 001B |
FS 001C |
GS 001D |
RS 001E |
US 001F |
2_ 32 |
SP 0020 |
! 0021 |
" 0022 |
# 0023 |
$ 0024 |
% 0025 |
& 0026 |
' 0027 |
( 0028 |
) 0029 |
* 002A |
+ 002B |
, 002C |
- 002D |
. 002E |
/ 002F |
3_ 48 |
0 0030 |
1 0031 |
2 0032 |
3 0033 |
4 0034 |
5 0035 |
6 0036 |
7 0037 |
8 0038 |
9 0039 |
: 003A |
; 003B |
< 003C |
= 003D |
> 003E |
? 003F |
4_ 64 |
@ 0040 |
A 0041 |
B 0042 |
C 0043 |
D 0044 |
E 0045 |
F 0046 |
G 0047 |
H 0048 |
I 0049 |
J 004A |
K 004B |
L 004C |
M 004D |
N 004E |
O 004F |
5_ 80 |
P 0050 |
Q 0051 |
R 0052 |
S 0053 |
T 0054 |
U 0055 |
V 0056 |
W 0057 |
X 0058 |
Y 0059 |
Z 005A |
[ 005B |
\ 005C |
] 005D |
^ 005E |
_ 005F |
6_ 96 |
` 0060 |
a 0061 |
b 0062 |
c 0063 |
d 0064 |
e 0065 |
f 0066 |
g 0067 |
h 0068 |
i 0069 |
j 006A |
k 006B |
l 006C |
m 006D |
n 006E |
o 006F |
7_ 112 |
p 0070 |
q 0071 |
r 0072 |
s 0073 |
t 0074 |
u 0075 |
v 0076 |
w 0077 |
x 0078 |
y 0079 |
z 007A |
{ 007B |
| 007C |
} 007D |
~ 007E |
DEL 007F |
ASCII는 옛날 ASCII에서 발전되어 변한 문자들이 있습니다.(TMI)
출처:위키(https://en.wikipedia.org/wiki/ASCII#cite_note-49)
ASCII - Wikipedia
ASCII From Wikipedia, the free encyclopedia Not to be confused with MS Windows-1252 or other types of extended ASCII . This article is about the character encoding. For other uses, see ASCII (disambiguation) . ASCII ( / ˈ æ s k iː / ( listen ) ASS -kee ), [3] : 6 abbreviated from American Standard C...
en.wikipedia.org
메모리 기능으로 문자열을 보면 c1 a6 be ee b9 ae c0 da c0 c7 20 bb e7 bf eb 0a 00
위에 있는 사이트들을 참고하여 해석하면 제어문자의(space)사용(줄넘기기[Enter])입니다.
문자열의 끝은 00입니다.
위에 보이는 16진수 코드가 한글입니다. 중간에 20(space) 끝에 0a(\n)[Line Feed]
한글은 한글자당 2바이트 입니다 (c1 a6 = 제), (be ee = 어) 이런 형식입니다.
31 09 32 0a 00
09는 ascii기준 (Horizontal Tab)[수평 탭] 0a는 (Line Feed) 개행(다음행으로 이동)
나머지 숫자 문자들은 ASCII에 포함됩니다.
1(31 00)을 출력한다음에 \n없으니 다음행으로 넘어가지 않고
다음 printf전에 문자열을 보면 32 34 08 33 34 0a 00
Ascii기준 08(Backspace) 0a(Line Feed)
32 32 33 0d 31 0a 00
Ascii기준 0d는 (carriage return) 0a(Line Feed)
Carriage Return의 경우는 타자기에서 시작된 것 같다
다음 으로 돌아갈때 줄만 이동하는게 아닌 시작으로 돌아간다.
지금은 잊혀졌을까 익숙해져을까 사라진 지식인가
Ascii기준 20(Space) 07(Bell) 0a(Line Feed)
문자열에서 제어코드는 ascii코드를 사용한다.(영어와 숫자도 1바이트 ascii를 사용한다.)
한글은 하나당 2바이트다.
코드는 규칙이다. 너무 많은 규칙이다. 웃고 싶다.
함수에도 끝이 있다.
스택을 반환하고 끝낸다.
'프로그래밍 > C언어' 카테고리의 다른 글
06 변수 (0) | 2021.08.06 |
---|---|
05 사칙연산 (0) | 2021.08.06 |
03 main 함수 (0) | 2021.08.06 |
02 Visual Studio 디버깅(초보자X) (0) | 2021.08.06 |
01 Visual Studio 2019 세팅(빈 프로젝트 생성) (0) | 2021.08.03 |