8. [C / C++] ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ์ ๋์ ํ ๋น (1)
1. ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ
์ปดํจํฐ์ ์ด์์ฒด์ ๋ ํ๋ก๊ทธ๋จ ์คํ์ ์ํด์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ๊ณตํฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๊ตฌ์กฐ๋ CDOE, DATA, HEAP, STACK 4๊ฐ์ง ์์ญ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
2. CODE ์์ญ
์ฝ๋ ์์ญ์ ๋ง ๊ทธ๋๋ก ์คํํ๋ ํ๋ก๊ทธ๋จ์ ์ฝ๋๊ฐ ์ ์ฅ๋๋ ์์ญ์ ๋๋ค.
์์ด๋ก ํ ์คํธ ์์ญ์ด๋ผ๊ณ ๋ ๋ถ๋ฆ ๋๋ค.
CPU(์ค์ ์ฒ๋ฆฌ ์ฅ์น)๋ ์ด ์ฝ๋ ์์ญ์ ์ ์ฅ๋ ๋ช ๋ น์ด๋ค์ ์ฒ๋ฆฌํ๊ฒ ๋ฉ๋๋ค.
(ํจ์ ์ฝ๋๋ ์ฝ๋์์ญ์ ๋ฐ์ด๋๋ฆฌ ํํ๋ก ์ ์ฅ๋ฉ๋๋ค.)
3. DATA ์์ญ
๋ฐ์ดํฐ ์์ญ์ ํ๋ก๊ทธ๋จ์ ์ ์ญ ๋ณ์์ ์ ์ ๋ณ์(static ๋ณ์)๊ฐ ์ ์ฅ๋๋ ์์ญ์ ๋๋ค.
๋ฉ๋ชจ๋ฆฌ์ ํ ๋น ์์ ์ ํ๋ก๊ทธ๋จ ์์์ ํ ๋น๋๋ฉฐ, ํ๋ก๊ทธ๋จ ์ข ๋ฃ์ ์๋ฉธ๋ฉ๋๋ค.
4. HEAP ์์ญ
ํ ์์ญ์ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ ์ ์๋ ์์ญ์ ๋๋ค.
ํ๋ก๊ทธ๋๋จธ๊ฐ ์ํ๋ ์์ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ ์ ์๊ณ ,
๋ํ ์ํ๋ ์์ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํ ์ ์์ต๋๋ค.
์ด๋ ๋์ ํ ๋น์ ํตํด์ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ง์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
5. STACK ์์ญ
์คํ ์์ญ์ ํจ์์ ์ง์ญ๋ณ์์ ๋งค๊ฐ๋ณ์๊ฐ ์ ์ฅ๋๋ ์์ญ์ ๋๋ค.
ํจ์์ ํธ์ถ๊ณผ ํจ๊ป ํ ๋น๋๋ฉฐ, ํจ์์ ํธ์ถ ์๋ฃ ์ ์๋ฉธํฉ๋๋ค.
์คํ ์์ญ์ ํ์ ์ ์ถ (Last In First Out)์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ ํน์ง์ด ์์ต๋๋ค.
์ฆ, ๋งจ ์ฒ์์ ํ ๋น๋ ๋ณ์๋ ๋ง์ง๋ง์ ์๋ฉธ์ด ๋๊ณ ,
๋งจ ๋ง์ง๋ง์ ํ ๋น๋ ๋ณ์๊ฐ ์ฒซ ๋ฒ์งธ๋ก ์๋ฉธ์ด ๋๋ ๊ตฌ์กฐ์ ๋๋ค.