๐ฉ๐ป C
-
* ๊ตฌ์กฐ์ฒด(Data structure)๋ ? ํ๋ก๊ทธ๋จ์ ๊ท๋ชจ๊ฐ ์ปค์ง๋ค๋ฉด, ๋ณ์๋ฅผ ๊ณ์ํด์ ์ ์ธํ๋๊ฒ์ ๋นํจ์จ์ ์ด๋ค. ์ด๋ ๊ตฌ์กฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ฉด ์ข ๋ ํจ์จ์ ์ด๋ค. ์๋ฅผ๋ค์ด์, 100๋ช ์ ์ฌ๋์ ์ธ์ ์ฌํญ์ ์ ์ฅํ๋ ํ๋ก๊ทธ๋จ์ด๋ผ๋ฉด, 100๋ช * (์ด๋ฆ , ๋์ด, ์ฃผ์) ๊น์ง 300๋ฐฑ๊ฐ์ ๋ณ์๊ฐ ํ์ํ๋ค. ๊ตฌ์กฐ์ฒด๋ฅผ ์ ์ธํ๋ค๋ฉด, ๊ตฌ์กฐ์ฒด ์์ ์ด๋ฆ, ๋์ด, ์ฃผ์ 3๊ฐ์ง๋ง ์ ์ธํ๊ณ , ์ฌ๋๋จ์๋ก ์ ๋ณด๋ฅผ ์ฒ๋ฆฌ ํ ์ ์๋ค. * ๊ตฌ์กฐ์ฒด์ ์ ์ธ ๊ธฐ๋ณธ์ ์ธ ์ ์ธ ๋ฐฉ๋ฒ struct Person{ char name[10]; int age; char address[30]; }; ๊ตฌ์กฐ์ฒด๋ ์์ ๊ฐ์ด ์ ์ธํ๋ค. Person : ๊ตฌ์กฐ์ฒด ์ด๋ฆ name, age, address : ๊ตฌ์กฐ์ฒด์ ๋ฉค๋ฒ ๋ผ๊ณ ํ๋ค. ๊ตฌ์กฐ์ฒด๋ ๋ณดํต mainํจ์ ๋ฐ์ ์ ..
C์ธ์ด - <๊ตฌ์กฐ์ฒด> ํ์ดํ ์ฐ์ฐ์, ๋ฉค๋ฒ , ๊ตฌ์กฐ์ฒด ๋ฉ๋ชจ๋ฆฌ ํ ๋น , ๊ตฌ์กฐ์ฒด ํฌ์ธํฐ* ๊ตฌ์กฐ์ฒด(Data structure)๋ ? ํ๋ก๊ทธ๋จ์ ๊ท๋ชจ๊ฐ ์ปค์ง๋ค๋ฉด, ๋ณ์๋ฅผ ๊ณ์ํด์ ์ ์ธํ๋๊ฒ์ ๋นํจ์จ์ ์ด๋ค. ์ด๋ ๊ตฌ์กฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ฉด ์ข ๋ ํจ์จ์ ์ด๋ค. ์๋ฅผ๋ค์ด์, 100๋ช ์ ์ฌ๋์ ์ธ์ ์ฌํญ์ ์ ์ฅํ๋ ํ๋ก๊ทธ๋จ์ด๋ผ๋ฉด, 100๋ช * (์ด๋ฆ , ๋์ด, ์ฃผ์) ๊น์ง 300๋ฐฑ๊ฐ์ ๋ณ์๊ฐ ํ์ํ๋ค. ๊ตฌ์กฐ์ฒด๋ฅผ ์ ์ธํ๋ค๋ฉด, ๊ตฌ์กฐ์ฒด ์์ ์ด๋ฆ, ๋์ด, ์ฃผ์ 3๊ฐ์ง๋ง ์ ์ธํ๊ณ , ์ฌ๋๋จ์๋ก ์ ๋ณด๋ฅผ ์ฒ๋ฆฌ ํ ์ ์๋ค. * ๊ตฌ์กฐ์ฒด์ ์ ์ธ ๊ธฐ๋ณธ์ ์ธ ์ ์ธ ๋ฐฉ๋ฒ struct Person{ char name[10]; int age; char address[30]; }; ๊ตฌ์กฐ์ฒด๋ ์์ ๊ฐ์ด ์ ์ธํ๋ค. Person : ๊ตฌ์กฐ์ฒด ์ด๋ฆ name, age, address : ๊ตฌ์กฐ์ฒด์ ๋ฉค๋ฒ ๋ผ๊ณ ํ๋ค. ๊ตฌ์กฐ์ฒด๋ ๋ณดํต mainํจ์ ๋ฐ์ ์ ..
2021.01.18 -
์๋์ฐ์์๋ ๋น์ฅฌ์ผ ์คํ๋์ค๋ฑ์ ์ฌ์ฉํ์ฌ ๋ฒํผ์ ๋๋ฌ ์ปดํ์ผํ์ง๋ง, ๋ฆฌ๋ ์ค ํ๊ฒฝ์์ ํ๋ก๊ทธ๋จ์ ์ปดํ์ผ ํ ๋ make๋ผ๋ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ๋ค. 1. makefile ์ด๋? Shell์์ ์ปดํ์ผํ๋ ๋ฐฉ๋ฒ์ค ํ๋์ด๋ค. makefile์ด๋ผ๋ ํ์ผ์, ์ด๋ค ํ์ผ์ ์ปดํ์ผ ํ๋์ง, ์ด๋ ํ ๋ฐฉ์์ผ๋ก ์ปดํ์ผ ํ ์ง ์์ฑํด๋๋๋ค. ๊ทธ๋ฆฌ๊ณ make๋ผ๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด makefile ์ด ๋ค์ด์๋ ๋๋ ํ ๋ฆฌ์์ ํ์ผ๋ค์ ์ข ์๊ด๊ณ๋ฅผ ํ์ ํ์ฌ ์๋์ ์ผ๋ก ์ปดํ์ผํ๊ฒ ๋๋ค. ์ฆ, makefile๋ฅผ ์ฌ์ฉํ์ฌ ์ปดํ์ผ ํ๋ฉด ์ฌ๋ฌ๊ฐ์ ํ์ผ์ ์ปดํ์ผํ ๋, ์๋ํ๋ก ์ธํด ์๊ฐ์ ์ ์ฝํ๊ณ , ํ๋ก๊ทธ๋จ์ ์ข ์ ๊ตฌ์กฐ๋ฅผ ์ฝ๊ฒ ํ์ ํ ์ ์๋ค. + ๋ง์ฝ ํ๋ก๊ทธ๋จ์ ์ผ๋ถ ์์ ํ๋ค๋ฉด, ๊ทธ ๋ถ๋ถ์ ๋ํด์๋ง ์ปดํ์ผ ํ๋๋ก ๋์์ฃผ๊ธฐ ๋๋ฌธ์ ํจ์ฌ ํจ์จ์ ์ด๋ค. 2..
(shell) - Makefile ์ด๋ ? gcc, g++๊ณผ makefile์ ์ฐจ์ด? ๋ณ์ ์ค์ ์๋์ฐ์์๋ ๋น์ฅฌ์ผ ์คํ๋์ค๋ฑ์ ์ฌ์ฉํ์ฌ ๋ฒํผ์ ๋๋ฌ ์ปดํ์ผํ์ง๋ง, ๋ฆฌ๋ ์ค ํ๊ฒฝ์์ ํ๋ก๊ทธ๋จ์ ์ปดํ์ผ ํ ๋ make๋ผ๋ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ๋ค. 1. makefile ์ด๋? Shell์์ ์ปดํ์ผํ๋ ๋ฐฉ๋ฒ์ค ํ๋์ด๋ค. makefile์ด๋ผ๋ ํ์ผ์, ์ด๋ค ํ์ผ์ ์ปดํ์ผ ํ๋์ง, ์ด๋ ํ ๋ฐฉ์์ผ๋ก ์ปดํ์ผ ํ ์ง ์์ฑํด๋๋๋ค. ๊ทธ๋ฆฌ๊ณ make๋ผ๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด makefile ์ด ๋ค์ด์๋ ๋๋ ํ ๋ฆฌ์์ ํ์ผ๋ค์ ์ข ์๊ด๊ณ๋ฅผ ํ์ ํ์ฌ ์๋์ ์ผ๋ก ์ปดํ์ผํ๊ฒ ๋๋ค. ์ฆ, makefile๋ฅผ ์ฌ์ฉํ์ฌ ์ปดํ์ผ ํ๋ฉด ์ฌ๋ฌ๊ฐ์ ํ์ผ์ ์ปดํ์ผํ ๋, ์๋ํ๋ก ์ธํด ์๊ฐ์ ์ ์ฝํ๊ณ , ํ๋ก๊ทธ๋จ์ ์ข ์ ๊ตฌ์กฐ๋ฅผ ์ฝ๊ฒ ํ์ ํ ์ ์๋ค. + ๋ง์ฝ ํ๋ก๊ทธ๋จ์ ์ผ๋ถ ์์ ํ๋ค๋ฉด, ๊ทธ ๋ถ๋ถ์ ๋ํด์๋ง ์ปดํ์ผ ํ๋๋ก ๋์์ฃผ๊ธฐ ๋๋ฌธ์ ํจ์ฌ ํจ์จ์ ์ด๋ค. 2..
2020.12.26 -
* malloc ํจ์, free ํจ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๊ณ , ํด์ ํ๋ malloc๊ณผ freeํจ์๋ stdlib.h ํค๋ํ์ผ๋ด์ ์ ์๋์ด ์๋ค. malloc (Meomory Allocation) : ์ฌ์ฉํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ๋ณดํ๋๋ก ํด์ค๋ค. ์ด๋ ๊ณต๊ฐ์ ํฌ๊ธฐ๋ byte๋จ์์ด๋ค. free : ํ ๋นํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํด์ ํ๋ค. * ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋นํ๊ธฐ malloc ํจ์๋ฅผ ์ด์ฉํ์ฌ, ์ํ๋ ์์ ์ ์ํ๋ size๋งํผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๊ธฐ ๋๋ฌธ์, ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ์ด๋ผ๊ณ ํ๋ค.(dynamic memory allocation) #include #include int main(){ int *pointer ; // ํฌ์ธํฐ ์ ์ธ pointer = malloc(sizeof(int)); // int์ ์ฌ์ด์ฆ๋งํผ ๋ฉ๋ชจ๋ฆฌ ํ ๋น. (4..
C ์ธ์ด - ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น (dynamic memory allocation) | malloc , free , stdlib.h , memset* malloc ํจ์, free ํจ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๊ณ , ํด์ ํ๋ malloc๊ณผ freeํจ์๋ stdlib.h ํค๋ํ์ผ๋ด์ ์ ์๋์ด ์๋ค. malloc (Meomory Allocation) : ์ฌ์ฉํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ๋ณดํ๋๋ก ํด์ค๋ค. ์ด๋ ๊ณต๊ฐ์ ํฌ๊ธฐ๋ byte๋จ์์ด๋ค. free : ํ ๋นํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํด์ ํ๋ค. * ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋นํ๊ธฐ malloc ํจ์๋ฅผ ์ด์ฉํ์ฌ, ์ํ๋ ์์ ์ ์ํ๋ size๋งํผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๊ธฐ ๋๋ฌธ์, ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ์ด๋ผ๊ณ ํ๋ค.(dynamic memory allocation) #include #include int main(){ int *pointer ; // ํฌ์ธํฐ ์ ์ธ pointer = malloc(sizeof(int)); // int์ ์ฌ์ด์ฆ๋งํผ ๋ฉ๋ชจ๋ฆฌ ํ ๋น. (4..
2020.10.19 -
* C์์๋ ์ฐธ๊ณผ ๊ฑฐ์ง์ 0๊ณผ 0์ด ์๋ ๋ค๋ฅธ ์ซ์๋ฅผ ํตํด ํํํ๋ค. (0์ ๊ฑฐ์ง, ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ธ์ ๋ชจ๋ ์ซ์๋ ์ฐธ) ์ด๋ stdbool.h ํค๋ํ์ผ์ ์ฌ์ฉํ๋ฉด True, False๋ฅผ ์ฌ์ฉ ํ ์์๋ค.๊ทธ๋ฆฌ๊ณ bool์ด๋ผ๋ ๋ฐ์ดํฐํ์ ๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. #include #include // bool, true, false๊ฐ ์ ์๋ ํค๋ ํ์ผ int main() { bool b1 = true; if (b1 == true) printf("์ฐธํธ๋ฃจ\n"); else printf("False\n"); return 0; } ์ด๋ bool์ size๋ 1byte์ด๋ค.
C์ธ์ด - ์ฐธ, ๊ฑฐ์ง (bool , True , False) , <stdbool.h>* C์์๋ ์ฐธ๊ณผ ๊ฑฐ์ง์ 0๊ณผ 0์ด ์๋ ๋ค๋ฅธ ์ซ์๋ฅผ ํตํด ํํํ๋ค. (0์ ๊ฑฐ์ง, ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ธ์ ๋ชจ๋ ์ซ์๋ ์ฐธ) ์ด๋ stdbool.h ํค๋ํ์ผ์ ์ฌ์ฉํ๋ฉด True, False๋ฅผ ์ฌ์ฉ ํ ์์๋ค.๊ทธ๋ฆฌ๊ณ bool์ด๋ผ๋ ๋ฐ์ดํฐํ์ ๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. #include #include // bool, true, false๊ฐ ์ ์๋ ํค๋ ํ์ผ int main() { bool b1 = true; if (b1 == true) printf("์ฐธํธ๋ฃจ\n"); else printf("False\n"); return 0; } ์ด๋ bool์ size๋ 1byte์ด๋ค.
2020.10.18 -
* ๋ณ์๋ ํ ๋ฒ ์ ์ธํ๋ฉด ๊ฐ์ ๊ณ์ํ์ฌ ๋ฐ๊ฟ ์ ์๋ค. * ์์๋ ์ฒ์ ์ ์ธํ ๋๋ง ๊ฐ์ ํ ๋นํด์ค์ ์๊ณ , ๊ทธ ์ดํ์๋ ๊ฐ์ ๋ฐ๊ฟ ์ ์๋ค. * ๋ฆฌํฐ๋ด์ด๋ ๊ฐ ๊ทธ ์์ฒด๋ฅผ ์ด์ผ๊ธฐํ๋ค. ์ฆ, ๋ณ์๋ ์์์ ๋ฃ์ด์ฃผ๋ ๊ฐ(ex ์ ์ -1) *์์ ์ ์ธ const int num1 = 10; ์๋ฃํ const ์์์ด๋ฆ = ๊ฐ; ํํ๋ก ์ ์ธํ๋ฉด ๋๋ค. const ํค์๋๋ฅผ ์ฌ์ฉํด ์์๋ฅผ ์ ์ธํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์ฝ๋์์ ๋ฆฌํฐ๋ด(literal)์ 10 ์ด ๋๋ค. *๋ฆฌํฐ๋ด ๊ฐ์ ๋ค๋ฃฐ๋ ํฐ ๋ฐ์ดํ C์์๋ ๋ฐ์ดํ์ ์ฉ๋๊ฐ ๊ตฌ๋ถ๋๋ค. ์ซ์๋ ๋ฐ์ดํ๊ฐ ํ์ ์์ง๋ง ๋ฌธ์์ ๊ฒฝ์ฐ์ ์์๋ฐ์ดํ๋ ๋ฌธ์ ํ๊ฐ๋ฅผ ๋ฌถ์๋, ๊ทธ๋ฆฌ๊ณ ํฐ๋ฐ์ดํ๋ ๋ฌธ์์ด(๋ฌธ์ ์ฌ๋ฌ๊ฐ)๋ฅผ ๋ฌถ์๋ ์ฌ์ฉ๋๋ค. ๋ณ์์ ์ธ๋๋ long, unsigned ๋ฑ์ ๋ถ์ฌ size๋ฅผ..
C ์ธ์ด - ๋ณ์(variable) ์์(Constant)์ ๋ฆฌํฐ๋ด(literal) | ํฐ ๋ฐ์ดํ , ์์ ๋ฐ์ดํ* ๋ณ์๋ ํ ๋ฒ ์ ์ธํ๋ฉด ๊ฐ์ ๊ณ์ํ์ฌ ๋ฐ๊ฟ ์ ์๋ค. * ์์๋ ์ฒ์ ์ ์ธํ ๋๋ง ๊ฐ์ ํ ๋นํด์ค์ ์๊ณ , ๊ทธ ์ดํ์๋ ๊ฐ์ ๋ฐ๊ฟ ์ ์๋ค. * ๋ฆฌํฐ๋ด์ด๋ ๊ฐ ๊ทธ ์์ฒด๋ฅผ ์ด์ผ๊ธฐํ๋ค. ์ฆ, ๋ณ์๋ ์์์ ๋ฃ์ด์ฃผ๋ ๊ฐ(ex ์ ์ -1) *์์ ์ ์ธ const int num1 = 10; ์๋ฃํ const ์์์ด๋ฆ = ๊ฐ; ํํ๋ก ์ ์ธํ๋ฉด ๋๋ค. const ํค์๋๋ฅผ ์ฌ์ฉํด ์์๋ฅผ ์ ์ธํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์ฝ๋์์ ๋ฆฌํฐ๋ด(literal)์ 10 ์ด ๋๋ค. *๋ฆฌํฐ๋ด ๊ฐ์ ๋ค๋ฃฐ๋ ํฐ ๋ฐ์ดํ C์์๋ ๋ฐ์ดํ์ ์ฉ๋๊ฐ ๊ตฌ๋ถ๋๋ค. ์ซ์๋ ๋ฐ์ดํ๊ฐ ํ์ ์์ง๋ง ๋ฌธ์์ ๊ฒฝ์ฐ์ ์์๋ฐ์ดํ๋ ๋ฌธ์ ํ๊ฐ๋ฅผ ๋ฌถ์๋, ๊ทธ๋ฆฌ๊ณ ํฐ๋ฐ์ดํ๋ ๋ฌธ์์ด(๋ฌธ์ ์ฌ๋ฌ๊ฐ)๋ฅผ ๋ฌถ์๋ ์ฌ์ฉ๋๋ค. ๋ณ์์ ์ธ๋๋ long, unsigned ๋ฑ์ ๋ถ์ฌ size๋ฅผ..
2020.10.18 -
* ์ค์ ์๋ฃํ์ ํฌ๊ธฐ ๋ฐ ๋ฒ์ (window) * ๋ถ๋ ์์์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ๋์ด ์ฌ์ฉํ๋๊ฒ์ ๊ณ ์ ์์์ ์ด๋ผ๊ณ ํ๋ค. ex ) 1.8 ์ปดํจํฐ์์์ ์ค์ํํ์ ๋ถ๋ ์์์ ์ผ๋ก ํ๊ฒ๋๋๋ฐ, '๋ถ'๋ ๏ฅง๊ฐ ์๋๋ผ , ๋ฅ๋ฅ ๋ ๋ค๋๋ค(float) ํ ๋ ๆตฎ๋ฅผ ์ฌ์ฉํ ๋ง์ด๋ค. ์์ธํ ์๋ฆฌ๋ ๋์ค์ ํ์ํ ๋ ์๋ ๋งํฌ์์ ํ์ธ gsmesie692.tistory.com/94 ์ปดํจํฐ์์์ ์ค์ ํํ: ๊ณ ์ ์์์ vs ๋ถ๋์์์ ์ด์ ํธ์ํฐ ํ์๋ผ์ธ์ ๋ณด๋ค๊ฐ, '๋ถ๋์์์ ' ์ด๋ผ๋ ๋จ์ด๋ฅผ ๋ณด๋ฉด ์ด๋ป๊ฒ ํด์ํ๊ฒ ๋๋๋๋ ๊ทธ๋ฐ ํธ์์ด RT๋ก ๋์ด์๋ค. ์๊ฐํด๋ณด๋๊น ๊ต์ฅํ ๋น์ง๊ด์ ์ธ ๋จ์ด๋ค. ์๋ ์์ด๋จ์ด๋ floating point gsmesie692.tistory.com * ์ง์ ํ๊ธฐ๋ฒ ์ค์e + ์ง์ : ์ค์ * 10์ ..
C์ธ์ด - ์ค์ ์๋ฃํ | ์ ์ธ , ์๋ฃํ ํฌ๊ธฐ, ์ต๋๊ฐ ์ต์๊ฐ* ์ค์ ์๋ฃํ์ ํฌ๊ธฐ ๋ฐ ๋ฒ์ (window) * ๋ถ๋ ์์์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ๋์ด ์ฌ์ฉํ๋๊ฒ์ ๊ณ ์ ์์์ ์ด๋ผ๊ณ ํ๋ค. ex ) 1.8 ์ปดํจํฐ์์์ ์ค์ํํ์ ๋ถ๋ ์์์ ์ผ๋ก ํ๊ฒ๋๋๋ฐ, '๋ถ'๋ ๏ฅง๊ฐ ์๋๋ผ , ๋ฅ๋ฅ ๋ ๋ค๋๋ค(float) ํ ๋ ๆตฎ๋ฅผ ์ฌ์ฉํ ๋ง์ด๋ค. ์์ธํ ์๋ฆฌ๋ ๋์ค์ ํ์ํ ๋ ์๋ ๋งํฌ์์ ํ์ธ gsmesie692.tistory.com/94 ์ปดํจํฐ์์์ ์ค์ ํํ: ๊ณ ์ ์์์ vs ๋ถ๋์์์ ์ด์ ํธ์ํฐ ํ์๋ผ์ธ์ ๋ณด๋ค๊ฐ, '๋ถ๋์์์ ' ์ด๋ผ๋ ๋จ์ด๋ฅผ ๋ณด๋ฉด ์ด๋ป๊ฒ ํด์ํ๊ฒ ๋๋๋๋ ๊ทธ๋ฐ ํธ์์ด RT๋ก ๋์ด์๋ค. ์๊ฐํด๋ณด๋๊น ๊ต์ฅํ ๋น์ง๊ด์ ์ธ ๋จ์ด๋ค. ์๋ ์์ด๋จ์ด๋ floating point gsmesie692.tistory.com * ์ง์ ํ๊ธฐ๋ฒ ์ค์e + ์ง์ : ์ค์ * 10์ ..
2020.10.17