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

ํ”„๋กœ๊ทธ๋žจ์˜ ๊ตฌ์กฐ

by eazuooz 2022. 8. 17.

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ๋ฐฐ์šฐ๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ดˆ๋ณด์ž๊ฐ€ ์ฒ˜์Œ ์ž‘์„ฑํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์€ "Hello World"๋ผ๋Š” ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ, ๋‹จ์ˆœํžˆ "Hello World"๋ฅผ ์ปดํ“จํ„ฐ ํ™”๋ฉด์— ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค. ๋งค์šฐ ๊ฐ„๋‹จํ•˜์ง€๋งŒ C++ ํ”„๋กœ๊ทธ๋žจ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ชจ๋“  ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

// my first program in C++
#include <iostream>

int main()
{
  std::cout << "Hello World!";
}

์ด ํ”„๋กœ๊ทธ๋žจ์„ ํ•œ ์ค„์”ฉ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

1ํ–‰:// my first program in C++๋‘ ๊ฐœ์˜ ์Šฌ๋ž˜์‹œ ๊ธฐํ˜ธ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์‚ฝ์ž…ํ•œ ์ฃผ์„์ด์ง€๋งŒ ํ”„๋กœ๊ทธ๋žจ์˜ ๋™์ž‘์—๋Š” ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ฃผ์„์€ ์ฝ”๋“œ๋‚˜ ํ”„๋กœ๊ทธ๋žจ์— ๊ด€ํ•œ ์„ค๋ช…์„ ๊ธฐ๋กํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค.

2ํ–‰:#include <iostream>๋กœ ์‹œ์ž‘ํ•˜๋Š” ํ–‰ ์€ ์ „์ฒ˜๋ฆฌ๊ธฐ ๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ์ด ์ฝ๊ณ  ํ•ด์„ํ•˜๋Š” ์ง€์‹œ๋ฌธ ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ ์ž์ฒด์˜ ์ปดํŒŒ์ผ์ด ์‹œ์ž‘๋˜๊ธฐ ์ „์— ํ•ด์„๋˜๋Š” ํŠน์ˆ˜ ๋ผ์ธ์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ง€์‹œ๋ฌธ ์€ iostream ํ—ค๋” ๋กœ ์•Œ๋ ค์ง„ ํ‘œ์ค€ C++ ์ฝ”๋“œ ์„น์…˜์„ ํฌํ•จํ•˜๋„๋ก ์ „์ฒ˜๋ฆฌ๊ธฐ์— ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค. 

3ํ–‰:๋นˆ ๋ผ์ธ.๋นˆ ์ค„์€ ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.


4ํ–‰:int main ()์ด ์ค„์€ ํ•จ์ˆ˜ ์„ ์–ธ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋‹ค์Œ ์ฝ”๋“œ ๋ช…๋ น๋ฌธ ๊ทธ๋ฃน์— "main"์ด๋ผ๋Š” ์ด๋ฆ„์ด ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜์— main ํ•จ์ˆ˜๋Š” ๋ชจ๋“  C++ ํ”„๋กœ๊ทธ๋žจ์˜ ํŠน์ˆ˜ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ์ž‘๊ณผ ๋์„ ์ •ํ•ด์ค๋‹ˆ๋‹ค.

6ํ–‰:std::cout << "Hello World!"; ์ด ๋ฌธ์žฅ์€ ์‹ค์ œ๋กœ ํ™”๋ฉด์— ""์•ˆ์— ์žˆ๋Š” ๋ฌธ์ž๋ฅผ  ํ™”๋ฉด์— ๊ทธ๋ ค์ค๋‹ˆ๋‹ค.

int main ()
{
  std::cout << " Hello World!";
}

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

int main () { std::cout << "Hello World!"; }

๋ชจ๋“  ๊ฒƒ์ด ํ•œ ์ค„์— ์žˆ๊ณ  ์ด๊ฒƒ์€ ์•ž์˜ ์ฝ”๋“œ์™€ ์ •ํ™•ํžˆ ๊ฐ™์€ ์˜๋ฏธ๋ฅผ ๊ฐ€์กŒ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

์ด์ œ ์ฒซ ๋ฒˆ์งธ ํ”„๋กœ๊ทธ๋žจ์— ์ถ”๊ฐ€ ๋ฌธ์„ ์ถ”๊ฐ€ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

// my second program in C++
#include <iostream>

int main ()
{
  std::cout << "Hello World! ";
  std::cout << "I'm a C++ program";
}
std::cout์ด ๊ฒฝ์šฐ ํ”„๋กœ๊ทธ๋žจ์€ ๋‘ ๊ฐœ์˜ ๋‹ค๋ฅธ ๋ช…๋ น๋ฌธ์— ๋‘ ๊ฐœ์˜ ์‚ฝ์ž…์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค . ๋‹ค์‹œ ํ•œ ๋ฒˆ, ์ฝ”๋“œ์˜ ๋‹ค๋ฅธ ์ค„๋กœ ๊ตฌ๋ถ„ํ•˜๋ฉด main๋‹ค์Œ๊ณผ ๊ฐ™์ด ์™„๋ฒฝํ•˜๊ฒŒ ์œ ํšจํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ๊ทธ๋žจ์— ๋” ํฐ ๊ฐ€๋…์„ฑ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
int main () { std::cout << " Hello World! "; std::cout << " I'm a C++ program "; }
 

๋Œ€์‹  ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋” ๋งŽ์€ ์ฝ”๋“œ ์ค„๋กœ ๋‚˜๋ˆŒ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

int main ()
{
  std::cout <<
    "Hello World!";
  std::cout
    << "I'm a C++ program";
}

๊ทธ๋ฆฌ๊ณ  ๊ฒฐ๊ณผ๋Š” ์ด์ „ ์˜ˆ์™€ ์ •ํ™•ํžˆ ๋™์ผํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ „์ฒ˜๋ฆฌ๊ธฐ ์ง€์‹œ๋ฌธ(๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ง€์‹œ๋ฌธ #)์€ ๋ช…๋ น๋ฌธ์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ์ผ๋ฐ˜ ๊ทœ์น™์—์„œ ๋ฒ—์–ด๋‚ฉ๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ์ปดํŒŒ์ผ์ด ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์ „์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ์ฝ๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ํ–‰์ž…๋‹ˆ๋‹ค. ์ „์ฒ˜๋ฆฌ๊ธฐ ์ง€์‹œ๋ฌธ์€ ์ž์ฒด ํ–‰์— ์ง€์ •ํ•ด์•ผ ํ•˜๋ฉฐ ๋ช…๋ น๋ฌธ์ด ์•„๋‹ˆ๋ฏ€๋กœ ์„ธ๋ฏธ์ฝœ๋ก ( ;)์œผ๋กœ ๋๋‚  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ฃผ์„

์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์ฃผ์„์€ ํ”„๋กœ๊ทธ๋žจ ์ž‘๋™์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ”„๋กœ๊ทธ๋žจ์ด ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…๊ณผ ์ž‘๋™ ๋ฐฉ์‹์„ ์†Œ์Šค ์ฝ”๋“œ ๋‚ด์—์„œ ์ง์ ‘ ๋ฌธ์„œํ™”ํ•˜๋Š” ์ค‘์š”ํ•œ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

C++๋Š” ์ฝ”๋“œ ์ฃผ์„ ์ฒ˜๋ฆฌ์˜ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

/* my second program in C++
   with more comments */

#include <iostream>

int main ()
{
  std::cout << "Hello World! ";     // prints Hello World!
  std::cout << "I'm a C++ program"; // prints I'm a C++ program
}
 

๊ทธ ์ค‘ ์ฒซ ๋ฒˆ์งธ ์ค„ ์ฃผ์„// ์ด๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ์€ ํ•œ ์Œ์˜ ์Šฌ๋ž˜์‹œ ๊ธฐํ˜ธ( )๊ฐ€ ์žˆ๋Š” ๊ณณ๋ถ€ํ„ฐ ๊ฐ™์€ ์ค„์˜ ๋๊นŒ์ง€ ๋ชจ๋“  ๊ฒƒ์„ ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค . ๋ธ”๋ก ์ฃผ์„ ์œผ๋กœ ์•Œ๋ ค์ง„ ๋‘ ๋ฒˆ์งธ ์ฃผ์„์€ ์—ฌ๋Ÿฌ ์ค„์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ๊ณผ ํ•จ๊ป˜ ๋ฌธ์ž์™€ ๋ฌธ์ž /*์˜ ์ฒซ ๋ฒˆ์งธ ๋ชจ์Šต ์‚ฌ์ด์˜ ๋ชจ๋“  ๊ฒƒ์„ ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค . ๋‘ ๋ฒˆ์งธ ํ”„๋กœ๊ทธ๋žจ์— ์ฃผ์„์„ ์ถ”๊ฐ€ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.*/
์ฃผ์„ ๋ฌธ์ž ์กฐํ•ฉ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ํ”„๋กœ๊ทธ๋žจ์˜ ์†Œ์Šค ์ฝ”๋“œ์— ์ฃผ์„์ด ํฌํ•จ๋œ ๊ฒฝ์šฐ //๋˜๋Š” /*, */์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ฃผ์„์„ C++ ํ‘œํ˜„์‹์œผ๋กœ ๊ฐ„์ฃผํ•˜์—ฌ ํ•˜๋‚˜ ๋˜๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ์ปดํŒŒ์ผ์— ์‹คํŒจํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.

๋„ค์ž„์ŠคํŽ˜์ด์Šค

ํ”„๋กœ๊ทธ๋žจ์ƒ์—์„œ ํ•˜๋‚˜์˜ ๊ฐœ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ณต๊ฐ„์œผ๋กœ ์ด๋ฆ„๊ณต๊ฐ„ ํ•˜๋‚˜์—์„œ๋Š” ํ•˜๋‚˜์˜ ์ด๋ฆ„์ด ํ•˜๋‚˜์˜ ๊ฐœ์ฒด๋งŒ์„ ๊ฐ€๋ฅดํ‚ต๋‹ˆ๋‹ค. ์ด๋ฆ„๊ณต๊ฐ„์„ ๋‹ฌ๋ฆฌํ•ด์„œ ๊ฐ™์€ ์ด๋ฆ„์˜ ํ•จ์ˆ˜๋‚˜ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

std::์€ c++์—์„œ ์ œ๊ณตํ•˜๋Š” ํ‘œ์ค€ ์ด๋ฆ„๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค.

 

using namespace std;

์œ„์˜ ์„ ์–ธ์€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์˜ ๋ชจ๋“  ์š”์†Œ๊ฐ€ ( ์ ‘๋‘์‚ฌ ์—†์ด ) ํ•œ์ •๋˜์ง€ ์•Š์€ ๋ฐฉ์‹์œผ๋กœ std์•ก์„ธ์Šค๋˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. 

// my second program in C++
#include <iostream>
using namespace std;

int main ()
{
  cout << "Hello World! ";
  cout << "I'm a C++ program";
}
๋„ค์ž„์ŠคํŽ˜์ด์Šค ์˜ ์š”์†Œ์— ์•ก์„ธ์Šคํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ• std(๋ช…์‹œ์  ์ž๊ฒฉ ๋ฐ ์„ ์–ธ ์‚ฌ์šฉ )์€ C++์—์„œ ์œ ํšจํ•˜๋ฉฐ ์ •ํ™•ํžˆ ๋™์ผํ•œ ๋™์ž‘์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•จ๊ณผ ๊ฐ€๋…์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ด ์ž์Šต์„œ์˜ ์˜ˆ์ œ์—์„œ๋Š” ์„ ์–ธ์„ ์‚ฌ์šฉํ•  ๋•Œ ํ›„์ž์˜ ์ ‘๊ทผ ๋ฐฉ์‹์„ ๋” ์ž์ฃผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ํ•จ์ˆ˜์™€ ์ด๋ฆ„์ด ์ถฉ๋Œํ•˜์ง€ ์•Š๋„๋ก std::์„ ์„ ์–ธํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

๋„ค์ž„์ŠคํŽ˜์ด์Šค๋Š” ์ดํ›„ ์žฅ์—์„œ ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€