README.md

Download
markdown 158 lines 3.9 KB
  1# C ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์˜ˆ์ œ ์ฝ”๋“œ
  2
  3์ด ํด๋”์—๋Š” C ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•™์Šต ๋ฌธ์„œ์˜ ๋ชจ๋“  ์˜ˆ์ œ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  4
  5## ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ
  6
  7```
  8examples/
  9โ”œโ”€โ”€ 02_calculator/          # ๊ณ„์‚ฐ๊ธฐ
 10โ”œโ”€โ”€ 03_number_guess/        # ์ˆซ์ž ๋งž์ถ”๊ธฐ ๊ฒŒ์ž„
 11โ”œโ”€โ”€ 04_address_book/        # ์ฃผ์†Œ๋ก
 12โ”œโ”€โ”€ 05_dynamic_array/       # ๋™์  ๋ฐฐ์—ด
 13โ”œโ”€โ”€ 06_linked_list/         # ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ
 14โ”œโ”€โ”€ 07_file_crypto/         # ํŒŒ์ผ ์•”ํ˜ธํ™”
 15โ”œโ”€โ”€ 08_stack_queue/         # ์Šคํƒ๊ณผ ํ
 16โ”œโ”€โ”€ 09_hash_table/          # ํ•ด์‹œ ํ…Œ์ด๋ธ”
 17โ”œโ”€โ”€ 10_snake_game/          # ๋ฑ€ ๊ฒŒ์ž„
 18โ”œโ”€โ”€ 11_minishell/           # ๋ฏธ๋‹ˆ ์‰˜
 19โ”œโ”€โ”€ 12_multithread/         # ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ
 20โ”œโ”€โ”€ 13_embedded_basic/      # ์ž„๋ฒ ๋””๋“œ ๊ธฐ์ดˆ (Arduino)
 21โ”œโ”€โ”€ 14_bit_operations/      # ๋น„ํŠธ ์—ฐ์‚ฐ
 22โ”œโ”€โ”€ 15_gpio_control/        # GPIO ์ œ์–ด (Arduino)
 23โ””โ”€โ”€ 16_serial_comm/         # ์‹œ๋ฆฌ์–ผ ํ†ต์‹  (Arduino)
 24```
 25
 26## ์ปดํŒŒ์ผ ๋ฐฉ๋ฒ•
 27
 28### C ํ”„๋กœ๊ทธ๋žจ (๋ฐ์Šคํฌํ†ฑ)
 29
 30```bash
 31# ๊ธฐ๋ณธ ์ปดํŒŒ์ผ
 32gcc program.c -o program
 33
 34# ๊ฒฝ๊ณ  ํฌํ•จ
 35gcc -Wall -Wextra program.c -o program
 36
 37# ๋””๋ฒ„๊ทธ ์ •๋ณด ํฌํ•จ
 38gcc -g program.c -o program
 39
 40# ์ตœ์ ํ™”
 41gcc -O2 program.c -o program
 42```
 43
 44### ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋žจ
 45
 46```bash
 47# Linux
 48gcc program.c -o program -pthread
 49
 50# macOS
 51gcc program.c -o program -lpthread
 52```
 53
 54### Arduino ํ”„๋กœ๊ทธ๋žจ
 55
 56Arduino ํ”„๋กœ๊ทธ๋žจ(.ino)์€ ๋‹ค์Œ ๋ฐฉ๋ฒ•์œผ๋กœ ์‹คํ–‰:
 57
 581. **Arduino IDE**
 59   - ํŒŒ์ผ ์—ด๊ธฐ
 60   - ๋ณด๋“œ ์„ ํƒ (Tools โ†’ Board โ†’ Arduino Uno)
 61   - ์—…๋กœ๋“œ ๋ฒ„ํŠผ ํด๋ฆญ
 62
 632. **Wokwi ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ** (๊ถŒ์žฅ)
 64   - https://wokwi.com ์ ‘์†
 65   - New Project โ†’ Arduino Uno
 66   - ์ฝ”๋“œ ๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐ
 67   - Start Simulation
 68
 693. **PlatformIO (VS Code)**
 70   ```bash
 71   pio run
 72   pio run --target upload
 73   ```
 74
 75## ๊ฐ ํ”„๋กœ์ ํŠธ ์„ค๋ช…
 76
 77| ํ”„๋กœ์ ํŠธ | ๋‚œ์ด๋„ | ์ฃผ์š” ๊ฐœ๋… |
 78|----------|--------|-----------|
 79| 02. ๊ณ„์‚ฐ๊ธฐ | โญ | ํ•จ์ˆ˜, switch-case, scanf |
 80| 03. ์ˆซ์ž ๋งž์ถ”๊ธฐ | โญ | ๋ฐ˜๋ณต๋ฌธ, ๋žœ๋ค, ์กฐ๊ฑด๋ฌธ |
 81| 04. ์ฃผ์†Œ๋ก | โญโญ | ๊ตฌ์กฐ์ฒด, ๋ฐฐ์—ด, ํŒŒ์ผ I/O |
 82| 05. ๋™์  ๋ฐฐ์—ด | โญโญ | malloc, realloc, free |
 83| 06. ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ | โญโญโญ | ํฌ์ธํ„ฐ, ๋™์  ์ž๋ฃŒ๊ตฌ์กฐ |
 84| 07. ํŒŒ์ผ ์•”ํ˜ธํ™” | โญโญ | ํŒŒ์ผ ์ฒ˜๋ฆฌ, ๋น„ํŠธ ์—ฐ์‚ฐ |
 85| 08. ์Šคํƒ/ํ | โญโญ | ์ž๋ฃŒ๊ตฌ์กฐ, LIFO/FIFO |
 86| 09. ํ•ด์‹œ ํ…Œ์ด๋ธ” | โญโญโญ | ํ•ด์‹ฑ, ์ถฉ๋Œ ์ฒ˜๋ฆฌ |
 87| 10. ๋ฑ€ ๊ฒŒ์ž„ | โญโญโญ | ํ„ฐ๋ฏธ๋„ ์ œ์–ด, ๊ฒŒ์ž„ ๋ฃจํ”„ |
 88| 11. ๋ฏธ๋‹ˆ ์‰˜ | โญโญโญโญ | fork, exec, ํŒŒ์ดํ”„ |
 89| 12. ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ | โญโญโญโญ | pthread, ๋™๊ธฐํ™” |
 90| 13. ์ž„๋ฒ ๋””๋“œ ๊ธฐ์ดˆ | โญ | Arduino, GPIO |
 91| 14. ๋น„ํŠธ ์—ฐ์‚ฐ | โญโญ | ๋น„ํŠธ ๋งˆ์Šคํ‚น, ๋ ˆ์ง€์Šคํ„ฐ |
 92| 15. GPIO ์ œ์–ด | โญโญ | LED, ๋ฒ„ํŠผ, ๋””๋ฐ”์šด์‹ฑ |
 93| 16. ์‹œ๋ฆฌ์–ผ ํ†ต์‹  | โญโญ | UART, ๋ช…๋ น์–ด ํŒŒ์‹ฑ |
 94
 95## ํ•™์Šต ์ˆœ์„œ
 96
 97### ์ดˆ๊ธ‰
 981. ๊ณ„์‚ฐ๊ธฐ
 992. ์ˆซ์ž ๋งž์ถ”๊ธฐ
1003. ์ฃผ์†Œ๋ก
101
102### ์ค‘๊ธ‰
1034. ๋™์  ๋ฐฐ์—ด
1045. ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ
1056. ํŒŒ์ผ ์•”ํ˜ธํ™”
1067. ์Šคํƒ๊ณผ ํ
1078. ํ•ด์‹œ ํ…Œ์ด๋ธ”
108
109### ๊ณ ๊ธ‰
1109. ๋ฑ€ ๊ฒŒ์ž„
11110. ๋ฏธ๋‹ˆ ์‰˜
11211. ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ
113
114### ์ž„๋ฒ ๋””๋“œ (Arduino)
11512. ์ž„๋ฒ ๋””๋“œ ๊ธฐ์ดˆ
11613. ๋น„ํŠธ ์—ฐ์‚ฐ
11714. GPIO ์ œ์–ด
11815. ์‹œ๋ฆฌ์–ผ ํ†ต์‹ 
119
120## ์‹คํ–‰ ์˜ˆ์‹œ
121
122### ๊ณ„์‚ฐ๊ธฐ
123```bash
124cd 02_calculator
125gcc calculator.c -o calculator
126./calculator
127```
128
129### ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ
130```bash
131cd 12_multithread
132gcc thread_basic.c -o thread_basic -pthread
133./thread_basic
134```
135
136### Arduino (Wokwi)
1371. ์ฝ”๋“œ ๋ณต์‚ฌ
1382. https://wokwi.com ์—์„œ ์ƒˆ ํ”„๋กœ์ ํŠธ
1393. ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ›„ ์‹คํ–‰
140
141## ๋ฌธ์ œ ํ•ด๊ฒฐ
142
143### ์ปดํŒŒ์ผ ์˜ค๋ฅ˜
144- `undefined reference to 'pthread_create'`: `-pthread` ํ”Œ๋ž˜๊ทธ ์ถ”๊ฐ€
145- `implicit declaration of function`: ํ—ค๋” ํŒŒ์ผ ์ถ”๊ฐ€
146- `permission denied`: `chmod +x program`
147
148### ์‹คํ–‰ ์˜ค๋ฅ˜
149- Segmentation fault: ํฌ์ธํ„ฐ ํ™•์ธ, valgrind ์‚ฌ์šฉ
150- Bus error: ์ž˜๋ชป๋œ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ
151- Memory leak: valgrind๋กœ ํ™•์ธ
152
153## ์ถ”๊ฐ€ ์ž๋ฃŒ
154
155- [C Reference](https://en.cppreference.com/w/c)
156- [Arduino Reference](https://www.arduino.cc/reference/en/)
157- [Wokwi Simulator](https://wokwi.com)