1) ์ปดํ์ผ๋ง
make๋ clang์ ์ฌ์ฉํด์ ํ๋ก๊ทธ๋จ์ ์คํํ ๋ ๊ฑฐ์น๋ ๋ค๋จ๊ณ
- ์ ์ฒ๋ฆฌ
- # ์ผ๋ก ์์๋๋ C ์์ค ์ฝ๋๋ ์ ์ฒ๋ฆฌ๊ธฐ์๊ฒ ์ค์ง์ ์ธ ์ปดํ์ผ์ด ์ด๋ฃจ์ด์ง๊ธฐ ์ ์ ๋ฌด์ธ๊ฐ๋ฅผ ์คํํ๋ผ๊ณ ์๋ ค์ค.
- ์๋ฅผ ๋ค์ด, #include๋ ์ ์ฒ๋ฆฌ๊ธฐ์๊ฒ ๋ค๋ฅธ ํ์ผ์ ๋ด์ฉ์ ํฌํจ์ํค๋ผ๊ณ ์๋ ค์ค.
- ํ๋ก๊ทธ๋จ์ ์์ค ์ฝ๋์ #include ์ ๊ฐ์ ์ค์ ํฌํจํ๋ฉด, ์ ์ฒ๋ฆฌ๊ธฐ๋ ์๋ก์ด ํ์ผ์ ์์ฑํ๋๋ฐ ์ด ํ์ผ์ ์ฌ์ ํ C ์์ค ์ฝ๋ ํํ์ด๋ฉฐ stdio.h ํ์ผ์ ๋ด์ฉ์ด #include ๋ถ๋ถ์ ํฌํจ๋จ.
- ์ปดํ์ผ๋ง
- ์ปดํ์ผ๋ฌ๋ผ๊ณ ๋ถ๋ฆฌ๋ ํ๋ก๊ทธ๋จ์ C ์ฝ๋๋ฅผ ์ด์ ๋ธ๋ฆฌ์ด๋ผ๋ ์ ์์ค ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์ปดํ์ผ.
- ์ด์ ๋ธ๋ฆฌ๋ C๋ณด๋ค ์ฐ์ฐ์ ์ข ๋ฅ๊ฐ ํจ์ฌ ์ ์ง๋ง, ์ฌ๋ฌ ์ฐ์ฐ๋ค์ด ํจ๊ป ์ฌ์ฉ๋๋ฉด C์์ ํ ์ ์๋ ๋ชจ๋ ๊ฒ๋ค์ ์ํ.
- C ์ฝ๋๋ฅผ ์ด์ ๋ธ๋ฆฌ ์ฝ๋๋ก ๋ณํ์์ผ์ค์ผ๋ก์จ ์ปดํ์ผ๋ฌ๋ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ ์ธ์ด์ ์ต๋ํ ๊ฐ๊น์ด ํ๋ก๊ทธ๋จ์ผ๋ก ๋ง๋ค์ด์ค.
- ์ด์ ๋ธ๋ง
- ์ด์ ๋ธ๋ฆฌ ์ฝ๋๋ฅผ ์ค๋ธ์ ํธ ์ฝ๋๋ก ๋ณํ์ํค๋ ๊ฒ.
- ์ปดํจํฐ์ ์ค์์ฒ๋ฆฌ์ฅ์น๊ฐ ํ๋ก๊ทธ๋จ์ ์ด๋ป๊ฒ ์ํํด์ผ ํ๋์ง ์ ์ ์๋ ๋ช ๋ น์ด ํํ์ธ ์ฐ์๋ 0๊ณผ 1๋ค๋ก ๋ฐ๊ฟ์ฃผ๋ ์์ . ์ด ๋ณํ์์ ์ ์ด์ ๋ธ๋ฌ๋ผ๋ ํ๋ก๊ทธ๋จ์ด ์ํ.
- ๋งํน
- ๋ง์ปค๋ ์ฌ๋ฌ ๊ฐ์ ๋ค๋ฅธ ์ค๋ธ์ ํธ ์ฝ๋ ํ์ผ์ ์คํ ๊ฐ๋ฅํ ํ๋์ ์ค๋ธ์ ํธ ์ฝ๋ ํ์ผ๋ก ํฉ์นจ.
- ์๋ฅผ ๋ค์ด, ์ปดํ์ผ์ ํ๋ ๋์์ CS50 ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋งํฌํ๋ฉด ์ค๋ธ์ ํธ ์ฝ๋๋ GetInt()๋ GetString() ๊ฐ์ ํจ์๋ฅผ ์ด๋ป๊ฒ ์คํํ ์ง ์ ์ ์๊ฒ ๋จ.
2) ๋๋ฒ๊น
๋ฒ๊ทธ(bug)๋ ์ฝ๋์ ๋ค์ด์๋ ์ค๋ฅ.
๋ฒ๊ทธ๋ก ์ธํด ํ๋ก๊ทธ๋จ์ ์คํ์ ์คํจํ๊ฑฐ๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ํ๋ ๋๋ก ๋์ํ์ง ์๊ฒ ๋จ.
๋๋ฒ๊น (debugging)์ ์ฝ๋์ ์๋ ๋ฒ๊ทธ๋ฅผ ์๋ณํ๊ณ ๊ณ ์น๋ ๊ณผ์ .
- help50: ์ปดํ์ผ์ ์๊ธฐ๋ ์ค๋ฅ ํด์
- debug50: ๋ณ์์ ๊ฐ ํ์ธ or ๋ธ๋ ์ดํฌํฌ์ธํธ๋ถํฐ ํ ์ค ์ฉ ์ฝ๋ ์คํ ๊ฐ๋ฅ
3) ์ฝ๋์ ๋์์ธ
style50
4) ๋ฐฐ์ด(1)
- ๋ฉ๋ชจ๋ฆฌ
- bool: ๋ถ๋ฆฌ์ธ, 1๋ฐ์ดํธ
- char: ๋ฌธ์, 1๋ฐ์ดํธ
- int: ์ ์, 4๋ฐ์ดํธ
- float: ์ค์, 4๋ฐ์ดํธ
- long: (๋ ํฐ) ์ ์, 8๋ฐ์ดํธ
- double: (๋ ํฐ) ์ค์, 8๋ฐ์ดํธ
- string: ๋ฌธ์์ด, ?๋ฐ์ดํธ
5) ๋ฐฐ์ด(2)
- ์ ์ญ๋ณ์
์์ ์ ์ธ
const int N = 3;
int main(void)
{
// ์ฌ์ฉ์๋ก๋ถํฐ ์ ์์ ๊ฐฏ์ ์
๋ ฅ
int n = get_int("Scores: ");
// ์ ์ ๋ฐฐ์ด ์ ์ธ ๋ฐ ์ฌ์ฉ์๋ก๋ถํฐ ๊ฐ ์
๋ ฅ
int scores[n];
for (int i = 0; i < n; i++)
{
scores[i] = get_int("Score %i: ", i + 1);
}
// ํ๊ท ์ถ๋ ฅ
printf("Average: %.1f\n", average(n, scores));
}
6) ๋ฌธ์์ด๊ณผ ๋ฐฐ์ด
๋ฌธ์์ด(string) ์๋ฃํ์ ๋ฐ์ดํฐ: ๋ฌธ์(char) ์๋ฃํ์ ๋ฐ์ดํฐ๋ค์ ๋ฐฐ์ด
7) ๋ฌธ์์ด์ ํ์ฉ
- ๋ฌธ์์ด์ ๊ธธ์ด
int main(void)
{
string s = get_string("Input: ");
printf("Output:\n");
for (int i = 0, n = strlen(s); i < n; i++)
{
printf("%c\n", s[i]);
}
}
- ๋ฌธ์์ด ๋๋ฌธ์ ๋ณํ
int main(void)
{
string s = get_string("Before: ");
printf("After: ");
for (int i = 0, n = strlen(s); i < n; i++)
{
printf("%c", toupper(s[i]));
}
printf("\n");
}
- string.h
- ๋ฌธ์์ด๊ณผ ๊ด๋ จ๋ ๋ค์ํ ํจ์๋ค์ด ์กด์ฌ. ๋ฌธ์์ด ๊ธธ์ด, ๋ฌธ์์ด ๋ถ๋ฆฌ, ๋ฌธ์์ด ๋ณต์ฌ ๋ฑ
- ctype.h
- ๋ฌธ์์ด์ด ์๋ ๋ฌธ์์ ๊ด๋ จ๋ ๋ค์ํ ํจ์๋ค์ด ์กด์ฌ. ๋ฌธ์ ๋ณํ, ๋ฌธ์ ๋น๊ต ๋ฑ
8) ๋ช ๋ นํ ์ธ์
int main(int argc, string argv[])
{
if (argc == 2)
{
printf("hello, %s\n", argv[1]);
}
else
{
printf("hello, world\n");
}
}
์ฒซ๋ฒ์งธ ๋ณ์ argc๋ main ํจ์๊ฐ ๋ฐ๊ฒ ๋ ์ ๋ ฅ์ ๊ฐ์.
๋๋ฒ์งธ ๋ณ์ argv[]๋ ๊ทธ ์ ๋ ฅ์ด ํฌํจ๋์ด ์๋ ๋ฐฐ์ด.
- argv[0]๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ก๊ทธ๋จ์ ์ด๋ฆ์ผ๋ก ์ ์ฅ
'๐ป > CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์์ฒด์ ] Synchronization - 1 (0) | 2022.12.16 |
---|---|
[์ด์์ฒด์ ] Real-time System์ด๋? (1) | 2022.12.16 |
CS ์ฐธ๊ณ (0) | 2022.06.12 |
CS50_C์ธ์ด (0) | 2022.06.12 |
CS50_์ปดํจํ ์ฌ๊ณ (0) | 2022.06.12 |