250x250
Rainbow๐ŸŒˆCoder
My dev Note๐Ÿ“’
Rainbow๐ŸŒˆCoder
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (411)
    • ๊ณต์ง€์‚ฌํ•ญ (0)
    • Debugger (10)
      • Visual Studio Debugger (1)
      • Chrome DevTools (3)
      • Visual Studio Code Debugger (4)
      • eclipse (1)
      • intelliJ (1)
    • OOP (2)
      • OOP (2)
    • TypeScript (54)
      • ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ TypeScript (54)
    • Javascript (87)
      • Javascript (45)
      • Node.js (19)
      • React (5)
      • FE ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ค์ • (3)
      • React์™€ Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ (6)
      • next.js (2)
      • pixi.js (7)
    • ๋งˆํฌ์—… (23)
      • Html & Css (23)
    • C# (80)
      • C# (12)
      • ์ด๊ฒƒ์ด C#์ด๋‹ค (68)
    • C++ (30)
      • c++ (27)
      • win api (3)
    • Unity (18)
      • Unity(๊ธฐ์ดˆ) (8)
      • Unity(C#์ค‘๊ธ‰) (5)
      • ์œ ๋‹ˆํ‹ฐ ํฌํ†ค(๋„คํŠธ์›Œํฌ) (4)
      • unity c# MyCode (1)
    • Java & Spring (29)
      • Java (11)
      • ์Šคํ”„๋ง (8)
      • Java Algorithm (9)
      • Javs Data Structures (1)
    • ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (15)
      • ์ž๋ฃŒ๊ตฌ์กฐ (5)
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜ (10)
    • ํ˜•์ƒ๊ด€๋ฆฌ (15)
      • Git (11)
      • ์†Œ์ŠคํŠธ๋ฆฌ (3)
    • ๊ทธ๋ž˜ํ”ฝ์Šค (7)
      • WebGl (7)
    • AWS (3)
      • aws (3)
    • ๋ฆฌ๋ˆ…์Šค (5)
      • ๋ฆฌ๋ˆ…์Šค (5)
    • ์ฑ… ๋ฆฌ๋ทฐ (13)
      • ํด๋ฆฐ์ฝ”๋“œ(์ฑ…๋ฆฌ๋ทฐ) (3)
      • ์œ ์ง€๋ณด์ˆ˜๊ฐ€๋Šฅํ•œ์ฝ”๋”ฉ์˜๊ธฐ์ˆ C#ํŽธ(์ฑ…๋ฆฌ๋ทฐ) (1)
      • ๋ฆฌํŒฉํ† ๋ง(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธํŒ) (9)
    • Server (2)
      • ๊ฒŒ์ž„ ์„œ๋ฒ„(๋„คํŠธ์›Œํฌ, ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ,OS) (2)
    • ์„ค๊ณ„, ์•„ํ‚คํ…์ณ (4)
    • ํŒŒ์ด์ฌ (5)
    • ๋””์ž์ธํŒจํ„ด (2)
    • mocha (2)
    • Jest (1)
    • Spine (1)
    • ์ธ๊ณต์ง€๋Šฅ (1)
      • ํ˜ผ์ž๊ณต๋ถ€ํ•˜๋Š”๋จธ์‹ ๋Ÿฌ๋‹+๋”ฅ๋Ÿฌ๋‹ (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ์ปดํฌ์ง€์…˜
  • ์œ„์ž„
  • MySQL
  • ใ…ฃใ„ท

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
Rainbow๐ŸŒˆCoder

My dev Note๐Ÿ“’

C++/c++

[C++] ์ธ๋ผ์ธ ํ•จ์ˆ˜

2022. 12. 30. 09:18
728x90

 

์ธ๋ผ์ธ ํ•จ์ˆ˜

 

ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ์—๋Š” ์•ฝ๊ฐ„์˜ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ฆ‰ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์ „์— ๋ชจ๋“  ๋ ˆ์ง€์Šคํ„ฐ(CPU ์•ˆ์˜ ์ €์žฅ ๊ณต๊ฐ„)๊ฐ€ ์ €์žฅ๋˜์–ด์•ผ ํ•˜๊ณ  ์ธ์ˆ˜๋“ค์„ ๋ณต์‚ฌ๋˜์–ด์•ผ ํ•œ๋‹ค. ํ•จ์ˆ˜ ํ˜ธ์ถœ ํ›„์—๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋“ค์ด ๋‹ค์‹œ ๋ณต๊ตฌ๋˜์–ด์•ผ ํ•œ๋‹ค.

 

 

 

๋งŒ์•ฝ ์•„์ฃผ ๊ฐ„๋‹จํ•œ ํ•จ์ˆ˜๋ผ๋ฉด ํ•จ์ˆ˜ ์•ˆ์˜ ๋ฌธ์žฅ์„ ์‹คํ–‰ํ•˜๋Š” ์‹œ๊ฐ„๋ณด๋‹ค ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ์ค€๋น„ํ•˜๋Š” ์‹œ๊ฐ„์ด ๋” ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ํฌ๊ธฐ๊ฐ€ ์ž‘์€ ํ•จ์ˆ˜์˜ ๊ฒฝ์šฐ์—๋Š” ์ฐจ๋ผ๋ฆฌ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ํ•˜์ง€ ์•Š๊ณ  ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ์„œ ๋„ฃ์–ด์ฃผ๋Š” ํŽธ์ด ํšจ์œจ์ ์ผ ์ˆ˜ ์žˆ๋‹ค.

 

 

c++์—๋Š” ์ด๋Ÿฐ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ์„œ inline์ด๋ผ๊ณ  ํ•˜๋Š” ํ‚ค์›Œ๋“œ๊ฐ€ ์ค€๋น„๋˜์–ด ์žˆ๋‹ค. ๋งŒ์•ฝ ํ•จ์ˆ˜ ์ด๋ฆ„ ์•ž์— inline์ด ๋ถ™์œผ๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ•จ์ˆ ๋ฅด ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ํ•จ์ˆ˜์˜ ์ฝ”๋“œ๋ฅผ ํ˜ธ์ถœํ•œ ๊ณณ์— ์ง์ ‘ ์ง‘์–ด๋„ฃ๋Š”๋‹ค. ์ด๋Ÿฌํ•œ ํ•จ์ˆ˜๋ฅผ ์ธ๋ผ์ธ ํ•จ์ˆ˜(inline function)๋ผ๊ณ  ํ•œ๋‹ค. ํ•จ์ˆ˜๋ฅผ ์ธ๋ผ์ธ์œผ๋กœ ๋งŒ๋“ค๋ฉด ํ•จ์ˆ˜ ํ˜ธ์ถœ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์‚ฌ๋ผ์ง€๋ฏ€๋กœ ํ”„๋กœ๊ทธ๋žจ์ด ๋” ๋น ๋ฅด๊ฒŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

์ธ๋ผ์ธ ํ•จ์ˆ˜๋กœ ์ •์˜ํ•˜๋ ค๋ฉด ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ํ˜• ์•ž์— inline๋งŒ ๋ถ™์ด๋ฉด ๋œ๋‹ค. ํ•˜๋‚˜์˜ ์˜ˆ๋กœ ์ฃผ์–ด์ง„ ๊ฐ’์„ ์ œ๊ณฑํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ธ๋ผ์ธ ํ•จ์ˆ˜๋กœ ์ž‘์„ฑํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

//์‹ค์ˆ˜๊ฐ’์„ ์ œ๊ณตํ•˜๋Š” ํ•จ์ˆ˜
inline double square(double i)
{
	return i*i;
}

 

- ์ฒœ์ธ๊ตญ ์ €, [์–ด์„œ์™€ c++์€ ์ฒ˜์Œ์ด์ง€!], p.145 ๋ฐœ์ทŒํฌ์ŠคํŒ…

 

 

๋ฉค๋ฒ„ ํ•จ์ˆ˜์˜ ๋‚ด๋ถ€ ์ •์˜์™€ ์™ธ๋ถ€ ์ •์˜ ์ฐจ์ด์ 

 

๋ฉค๋ฒ„ ํ•จ์ˆ˜๋ฅผ ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์ •์˜ํ•˜๋Š” ๊ฒƒ๊ณผ ํด๋ž˜์Šค ์™ธ๋ถ€์— ์ •์˜ํ•˜๋Š” ๊ฒƒ์€ ์•ฝ๊ฐ„์˜ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.

- ๋ฉค๋ฒ„ ํ•จ์ˆ˜๊ฐ€ ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์ •์˜๋˜๋ฉด ์ž๋™์ ์œผ๋กœ ์ธ๋ผ์ธ(inline) ํ•จ์ˆ˜๊ฐ€ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฉค๋ฒ„ ํ•จ์ˆ˜ ํ˜ธ์ถœ์ด ๋ฉค๋ฒ„ ํ•จ์ˆ˜์˜ ์ฝ”๋“œ๋กœ ๋Œ€์น˜๋œ๋‹ค.

- ๋ฉค๋ฒ„ ํ•จ์ˆ˜๊ฐ€ ํด๋ž˜์Šค ์™ธ๋ถ€์— ์ •์˜๋˜๋ฉด ์ผ๋ฐ˜์ ์ธ ํ•จ์ˆ˜์™€ ๋™์ผํ•˜๊ฒŒ ํ˜ธ์ถœ๋œ๋‹ค. ์ฆ‰ ์Šคํƒ์— ์ธ์ˆ˜๋“ค์„ ์ €์žฅํ•˜๊ณ  ๋ณต๊ท€ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•œ ํ›„์— ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋กœ ์ œ์–ด๊ฐ€ ์ด๋™ํ•œ๋‹ค.

 

๋”ฐ๋ผ์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฉค๋ฒ„ ํ•จ์ˆ˜์˜ ํฌ๊ธฐ๊ฐ€ ์ž‘์œผ๋ฉด ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฉค๋ฒ„ ํ•จ์ˆ˜์˜ ํฌ๊ธฐ๊ฐ€ ํฐ ๊ฒฝ์šฐ์— ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์ •์˜ํ•˜๋ฉด ์ฝ”๋“œ์˜ ๋ณต์‚ฌ๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ ์ผ์–ด๋‚˜์„œ ์‹คํ–‰ ํŒŒ์ผ์˜ ํฌ๊ธฐ๊ฐ€ ์ปค์งˆ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰ ์ธ๋ผ์ธ ํ•จ์ˆ˜์˜ ์žฅ๋‹จ์ ์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค. ์ด๊ฒƒ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์„ ํƒํ•  ๋ฌธ์ œ์ด๋‹ค. ์‹ค์ „์—์„œ๋Š” ๋ณดํ†ต ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋ฅผ ํด๋ž˜์Šค ์™ธ๋ถ€์— ๋งŽ์ด ์ •์˜ํ•œ๋‹ค.

 

 

- ์ฒœ์ธ๊ตญ ์ €, [์–ด์„œ์™€ c++์€ ์ฒ˜์Œ์ด์ง€!], p.192 ๋ฐœ์ทŒํฌ์ŠคํŒ…

728x90

'C++ > c++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[c][c++] const ์ œํ•œ์ž, ๋ณ€์ˆ˜๋ฅผ ์ƒ์ˆ˜์ฒ˜๋Ÿผ ์‚ฌ์šฉ  (0) 2022.06.12
[์šฉ์–ด] ์„ ์–ธ๊ณผ ์ •์˜์˜ ์ฐจ์ด  (0) 2022.04.20
ํฌ์ธํ„ฐ, ์ด์ค‘ํฌ์ธํ„ฐ  (0) 2022.04.14
[C++] ๋ฌธ์ž์—ด, String ํด๋ž˜์Šค  (0) 2022.02.07
[์ฐธ๊ณ ์šฉ] ์ˆซ์ž n์„ k์ง„๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•  (0) 2022.02.06
    'C++/c++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [c][c++] const ์ œํ•œ์ž, ๋ณ€์ˆ˜๋ฅผ ์ƒ์ˆ˜์ฒ˜๋Ÿผ ์‚ฌ์šฉ
    • [์šฉ์–ด] ์„ ์–ธ๊ณผ ์ •์˜์˜ ์ฐจ์ด
    • ํฌ์ธํ„ฐ, ์ด์ค‘ํฌ์ธํ„ฐ
    • [C++] ๋ฌธ์ž์—ด, String ํด๋ž˜์Šค
    Rainbow๐ŸŒˆCoder
    Rainbow๐ŸŒˆCoder
    ๋ชฐ๋ผ๋„ ๊ฒฐ๊ตญ์€ ์•„๋Š” ๊ฐœ๋ฐœ์ž, ๊ทธ๋Ÿฐ ์‚ฌ๋žŒ์ด ๋˜๊ธฐ ์œ„ํ•œ ๋งค์ผ์˜ ํ•œ๊ฑธ์Œ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”