๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“ Development Study/๐Ÿ’ป Win32API

์ƒ์ˆ˜

by eazuooz 2022. 8. 17.

์ƒ์ˆ˜ ๋Š” ๊ณ ์ • ๊ฐ’์„ ๊ฐ–๋Š” ํ‘œํ˜„์‹์ž…๋‹ˆ๋‹ค.

๋ฆฌํ„ฐ๋Ÿด

๋ฆฌํ„ฐ๋Ÿด์€ ๊ฐ€์žฅ ๋ช…๋ฐฑํ•œ ์ข…๋ฅ˜์˜ ์ƒ์ˆ˜์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์˜ ์†Œ์Šค ์ฝ”๋“œ ๋‚ด์—์„œ ํŠน์ • ๊ฐ’์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด์ „ ์žฅ์—์„œ ๋ณ€์ˆ˜์— ํŠน์ • ๊ฐ’์„ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ถœ๋ ฅํ•˜๋ ค๋Š” โ€‹โ€‹๋ฉ”์‹œ์ง€๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฏธ ์ผ๋ถ€๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

a = 5;โ€‹

๋ฆฌํ„ฐ๋Ÿด ์ƒ์ˆ˜๋Š” ์ •์ˆ˜, ๋ถ€๋™ ์†Œ์ˆ˜์ , ๋ฌธ์ž, ๋ฌธ์ž์—ด, ๋ถ€์šธ, ํฌ์ธํ„ฐ ๋ฐ ์‚ฌ์šฉ์ž ์ •์˜ ๋ฆฌํ„ฐ๋Ÿด๋กœ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ •์ˆ˜

1776
707
-273

์ •์ˆ˜ ๊ฐ’์„ ์‹๋ณ„ํ•˜๋Š” ์ˆซ์ž ์ƒ์ˆ˜์ž…๋‹ˆ๋‹ค. 

10์ง„์ˆ˜(์šฐ๋ฆฌ ๋Œ€๋ถ€๋ถ„์ด ๋งค์ผ ์‚ฌ์šฉ) ์™ธ์—๋„ C++์—์„œ๋Š” 8์ง„์ˆ˜(๊ธฐ์ˆ˜ 8) ๋ฐ 16์ง„์ˆ˜(๊ธฐ์ˆ˜ 16)๋ฅผ ๋ฆฌํ„ฐ๋Ÿด ์ƒ์ˆ˜๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 8์ง„์ˆ˜ ๋ฆฌํ„ฐ๋Ÿด์˜ ๊ฒฝ์šฐ ์ˆซ์ž ์•ž์— 0(์˜) ๋ฌธ์ž๊ฐ€ ์˜ต๋‹ˆ๋‹ค. 16์ง„์ˆ˜์˜ ๊ฒฝ์šฐ ๋ฌธ์ž 0x(0, x)๊ฐ€ ์•ž์— ์˜ต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ ๋ฆฌํ„ฐ๋Ÿด ์ƒ์ˆ˜๋Š” ๋ชจ๋‘ ์„œ๋กœ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

75         // decimal
0113       // octal
0x4b       // hexadecimalโ€‹

์ด๋“ค ๋ชจ๋‘๋Š” ๋™์ผํ•œ ์ˆซ์ž๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. 75(์น ์‹ญ์˜ค)๋Š” ๊ฐ๊ฐ 10์ง„์ˆ˜, 8์ง„์ˆ˜ ๋ฐ 16์ง„์ˆ˜๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฆฌํ„ฐ๋Ÿด ์ƒ์ˆ˜์—๋Š” ๋ณ€์ˆ˜์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์œ ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ •์ˆ˜ ๋ฆฌํ„ฐ๋Ÿด์€ ์œ ํ˜• int์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹ค๋ฅธ ์ •์ˆ˜ ์œ ํ˜•์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•ด ์ •์ˆ˜ ๋ฆฌํ„ฐ๋Ÿด์— ํŠน์ • ์ ‘๋ฏธ์‚ฌ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Suffix Modifier Types
u ๋˜๋Š” U unsigned
l ๋˜๋Š” L long
ll ๋˜๋Š” LL long long

Unsigned๋Š” ์ˆœ์„œ์— ๊ด€๊ณ„์—†์ด ๋‹ค๋ฅธ ๋‘ ๊ฐœ์™€ ๊ฒฐํ•ฉํ•˜์—ฌ unsigned long๋˜๋Š” ๋ฅผ ํ˜•์„ฑํ•  ์ˆ˜ unsigned long long์žˆ์Šต๋‹ˆ๋‹ค.

75         // int
75u        // unsigned int
75l        // long
75ul       // unsigned long 
75lu       // unsigned long

์œ„์˜ ๋ชจ๋“  ๊ฒฝ์šฐ์— ์ ‘๋ฏธ์‚ฌ๋Š” ๋Œ€๋ฌธ์ž ๋˜๋Š” ์†Œ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ถ€๋™ ์†Œ์ˆ˜์  ์ˆซ์ž

์†Œ์ˆ˜์  ๋ฐ/๋˜๋Š” ์ง€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค์ œ ๊ฐ’์„ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค

3.14159    // 3.14159
6.02e23    // 6.02 x 10^23
1.6e-19    // 1.6 x 10^-19
3.0        // 3.0โ€‹


๋ถ€๋™ ์†Œ์ˆ˜์  ๋ฆฌํ„ฐ๋Ÿด์˜ ๊ธฐ๋ณธ ์œ ํ˜•์€ ์ž…๋‹ˆ๋‹ค double. float์œ ํ˜• ๋˜๋Š” long double๋‹ค์Œ ์ ‘๋ฏธ์‚ฌ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ฆฌํ„ฐ๋Ÿด :

Suffix Type
f or F float
l or L long double

์˜ˆ๋ฅผ ๋“ค์–ด:

3.14159L   // long double
6.02e23f   // float

๋ถ€๋™ ์†Œ์ˆ˜์  ์ˆซ์ž ์ƒ์ˆ˜( e, f, l)์˜ ์ผ๋ถ€๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๋ฌธ์ž๋Š” ์˜๋ฏธ์˜ ์ฐจ์ด ์—†์ด ์†Œ๋ฌธ์ž ๋˜๋Š” ๋Œ€๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ž ๋ฐ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด

๋ฌธ์ž ๋ฐ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์€ ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์Šต๋‹ˆ๋‹ค.

'z'
'p'
"Hello world"
"How do you do?"
 

์ฒ˜์Œ ๋‘ ํ‘œํ˜„์‹์€ ๋‹จ์ผ ๋ฌธ์ž ๋ฆฌํ„ฐ๋Ÿด ์„ ๋‚˜ํƒ€๋‚ด๊ณ  ๋‹ค์Œ ๋‘ ํ‘œํ˜„์‹ ์€ ์—ฌ๋Ÿฌ ๋ฌธ์ž๋กœ ๊ตฌ์„ฑ๋œ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋‹จ์ผ ๋ฌธ์ž๋ฅผ ๋‚˜ํƒ€๋‚ด๋ ค๋ฉด ์ž‘์€๋”ฐ์˜ดํ‘œ( ')๋กœ ๋ฌถ๊ณ  ๋ฌธ์ž์—ด(์ผ๋ฐ˜์ ์œผ๋กœ ๋‘˜ ์ด์ƒ์˜ ๋ฌธ์ž๋กœ ๊ตฌ์„ฑ๋จ)์„ ํ‘œํ˜„ํ•˜๋ ค๋ฉด ํฐ๋”ฐ์˜ดํ‘œ( ")๋กœ ๋ฌถ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ž ๋ฐ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์€ ๊ฐœํ–‰( ) ๋˜๋Š” ํƒญ( ) ๊ณผ ๊ฐ™์ด ํ”„๋กœ๊ทธ๋žจ์˜ ์†Œ์Šค ์ฝ”๋“œ์—์„œ ๋‹ฌ๋ฆฌ ํ‘œํ˜„ํ•˜๊ธฐ ์–ด๋ ต๊ฑฐ๋‚˜ ๋ถˆ๊ฐ€๋Šฅํ•œ ํŠน์ˆ˜ ๋ฌธ์ž๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค . ์ด๋Ÿฌํ•œ ํŠน์ˆ˜ ๋ฌธ์ž๋Š” ๋ชจ๋‘ ๋ฐฑ์Šฌ๋ž˜์‹œ ๋ฌธ์ž( )๊ฐ€ ์•ž์— ์˜ต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๋‹จ์ผ ๋ฌธ์ž ์ด์Šค์ผ€์ดํ”„ ์ฝ”๋“œ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

์ด์Šค์ผ€์ดํ”„ ์ฝ”๋“œ ์„ค๋ช…
\n ๊ฐœํ–‰
\r ์บ๋ฆฌ์ง€ ๋ฆฌํ„ด
\t ํƒญ
\v ์„ธ๋กœ ํƒญ
\b ์—ญํ–‰ ํ‚ค์ด
\f ์–‘์‹ ํ”ผ๋“œ(ํŽ˜์ด์ง€ ํ”ผ๋“œ)
\a ๊ฒฝ๊ณ (์‚)
\' ์ž‘์€๋”ฐ์˜ดํ‘œ( ')
\" ํฐ๋”ฐ์˜ดํ‘œ( ")
\? ๋ฌผ์Œํ‘œ( ?)
\\ ๋ฐฑ์Šฌ๋ž˜์‹œ( \)


์˜ˆ: ๋‚ด๋ถ€์ ์œผ๋กœ ์ปดํ“จํ„ฐ๋Š” ๋ฌธ์ž๋ฅผ ์ˆซ์ž ์ฝ”๋“œ๋กœ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์œผ๋กœ ASCII ๋ฌธ์ž ์ธ์ฝ”๋”ฉ ์‹œ์Šคํ…œ์˜ ํ™•์žฅ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค

์—ฌ๋Ÿฌ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์„ ์—ฐ๊ฒฐํ•˜์—ฌ ํƒญ, ์ค„ ๋ฐ”๊ฟˆ ๋ฐ ๊ธฐํƒ€ ์œ ํšจํ•œ ๊ณต๋ฐฑ ๋ฌธ์ž๋ฅผ ํฌํ•จํ•˜์—ฌ ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ณต๋ฐฑ์œผ๋กœ ๊ฐ„๋‹จํžˆ ๊ตฌ๋ถ„ํ•˜์—ฌ ๋‹จ์ผ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์„ ํ˜•์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

"this forms" "a single"     " string "
"of characters"

์œ„๋Š” ๋‹ค์Œ๊ณผ ๋™์ผํ•œ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์ž…๋‹ˆ๋‹ค.

"this formsa single string of characters"
 

๋”ฐ์˜ดํ‘œ ์•ˆ์˜ ๊ณต๋ฐฑ์€ ๋ฆฌํ„ฐ๋Ÿด์˜ ์ผ๋ถ€์ธ ๋ฐ˜๋ฉด ์™ธ๋ถ€์˜ ๊ณต๋ฐฑ์€ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ผ๋ถ€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์—ฌ๋Ÿฌ ์ค„์— ๊ธด ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์„ ํฌํ•จํ•˜๋Š” ํŠธ๋ฆญ์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. C++์—์„œ \์ค„ ๋์— ์žˆ๋Š” ๋ฐฑ์Šฌ๋ž˜์‹œ( )๋Š” ํ•ด๋‹น ์ค„๊ณผ ๋‹ค์Œ ์ค„์„ ํ•œ ์ค„๋กœ ๋ณ‘ํ•ฉํ•˜๋Š” ์ค„ ์—ฐ์† ๋ฌธ์ž๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

x = "string expressed in \
two lines"

๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

x = "string expressed in two lines"โ€‹


์œ„์—์„œ ์„ค๋ช…ํ•œ ๋ชจ๋“  ๋ฌธ์ž ๋ฆฌํ„ฐ๋Ÿด๊ณผ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์€ ์œ ํ˜•์˜ ๋ฌธ์ž๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์ ‘๋‘์‚ฌ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ๋ฌธ์ž ์œ ํ˜•์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ ‘๋‘์‚ฌ ๋ฌธ์ž ์œ ํ˜•
u char16_t
U char32_t
L wchar_t

 

๊ธฐํƒ€ ๋ฆฌํ„ฐ๋Ÿด

C++์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„ธ ๊ฐ€์ง€ ํ‚ค์›Œ๋“œ ๋ฆฌํ„ฐ๋Ÿด true, false, nullptr ์žˆ์Šต๋‹ˆ๋‹ค.

  • true๋ฐ false์œ ํ˜•์˜ bool๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๊ฐ’์ž…๋‹ˆ๋‹ค .
  • nullptr ์€ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์— ๋„ฃ์„์ˆ˜ ์žˆ๋Š” 0๊ฐ’์ž…๋‹ˆ๋‹ค.
bool foo = true;
bool bar = false;
int* p = nullptr
 

ํ˜•์‹ํ™”๋œ ์ƒ์ˆ˜ ํ‘œํ˜„์‹

๋•Œ๋กœ๋Š” ์ƒ์ˆ˜ ๊ฐ’์— ์ด๋ฆ„์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

const double pi = 3.1415926;
const char tab = '\t';
 


๊ทธ๋Ÿฐ ๋‹ค์Œ ์ •์˜๋œ ๋ฆฌํ„ฐ๋Ÿด ๋Œ€์‹  ๋‹ค์Œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

#include <iostream>
using namespace std;

const double pi = 3.14159;
const char newline = '\n';

int main ()
{
  double r=5.0;               // radius
  double circle;

  circle = 2 * pi * r;
  cout << circle;
  cout << newline;
}
 
์ „์ฒ˜๋ฆฌ๊ธฐ ์ •์˜(#define)

์ƒ์ˆ˜ ๊ฐ’์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ์ „์ฒ˜๋ฆฌ๊ธฐ ์ •์˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜•์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

#define identifier replacement

์ด ์ง€์‹œ๋ฌธ ๋’ค์— identifier์žˆ๋Š” ์ฝ”๋“œ์˜ ๋ชจ๋“  ํ•ญ๋ชฉ์€ replacement๋กœ ํ•ด์„๋ฉ๋‹ˆ๋‹ค . ์ด ๊ต์ฒด๋Š” ์ „์ฒ˜๋ฆฌ๊ธฐ์— ์˜ํ•ด ์ˆ˜ํ–‰๋˜๋ฉฐ ํ”„๋กœ๊ทธ๋žจ์ด ์ปดํŒŒ์ผ๋˜๊ธฐ ์ „์— ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

#include <iostream>
using namespace std;

#define PI 3.14159
#define NEWLINE '\n'

int main ()
{
  double r=5.0;               // radius
  double circle;

  circle = 2 * PI * r;
  cout << circle;
  cout << NEWLINE;

}
 #define์ „์ฒ˜๋ฆฌ๊ธฐ ์ง€์‹œ๋ฌธ์ด๋ฏ€๋กœ C++ ๋ช…๋ น๋ฌธ๊ณผ ๋‹ฌ๋ฆฌ ๋์— ์„ธ๋ฏธ์ฝœ๋ก (;)์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
 

'๐Ÿ“ Development Study > ๐Ÿ’ป Win32API' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๊ธฐ๋ณธ ์ž…์ถœ๋ ฅ  (0) 2022.08.17
์—ฐ์‚ฐ์ž  (0) 2022.08.17
๋ณ€์ˆ˜ ๋ฐ ์œ ํ˜•  (0) 2022.08.17
ํ”„๋กœ๊ทธ๋žจ์˜ ๊ตฌ์กฐ  (0) 2022.08.17
์ปดํŒŒ์ผ๋Ÿฌ  (0) 2022.08.17

๋Œ“๊ธ€