๐Ÿ‘ฉโ€๐Ÿ’ปTIL2. CS : C๊ธฐ์ดˆ

Lilyยท2021๋…„ 5์›” 16์ผ
0

Today I Learned

๋ชฉ๋ก ๋ณด๊ธฐ
2/30

๋ถ€์ŠคํŠธ์ฝ”์Šค "๋ชจ๋‘๋ฅผ ์œ„ํ•œ ์ปดํ“จํ„ฐ ๊ณผํ•™-1) C๊ธฐ์ดˆ"๋ฅผ ์ˆ˜๊ฐ•ํ•˜๊ณ  ๋ฐฐ์šด ์ ์„ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค.

์ •๋ง ๋งŽ์ด ๋“ค์–ด๋ณธ, C์–ธ์–ด ๋“œ๋””์–ด ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค๐Ÿ‘ฉโ€๐Ÿ’ป๐ŸŽ†

์ด์ „ ๊ฐ•์˜์—์„œ scratch๋กœ ์‹คํ–‰ํ–ˆ๋˜ "hello,world"๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด๋ณด์•˜๋‹ค.

1. ์†Œ์Šค์ฝ”๋“œ ์ž‘์„ฑ

  • ํŒŒ์ผํ™•์žฅ์ž๋Š” c๋กœ ์ €์žฅ
    C์ฝ”๋“œ ํŒŒ์ผ์„ ์ €์žฅํ•  ๋•Œ๋Š” ํŒŒ์ผ๋ช…์„ "ํŒŒ์ผ๋ช….c"๋กœ ํ™•์žฅ์ž๋ฅผ ์ง์ ‘ ๋ถ™์—ฌ์ฃผ์–ด์•ผํ•œ๋‹ค.
#include <stdio.h>

"stdio.h"๋ผ๋Š” ์ด๋ฆ„์˜ ํŒŒ์ผ์„ ์ฐพ์•„์„œ ํ•จ์ˆ˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค.

int main(void){
}

"์‹œ์ž‘ํ•œ๋‹ค"๋ผ๋Š” ๋œป์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ๋ณด๋ฉด๋œ๋‹ค. ์ค‘๊ด„ํ˜ธ ์•ˆ์— ์‹คํ–‰ํ•  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ค€๋‹ค.

printf("hello,world");

printf๋Š” ์ถœ๋ ฅํ•จ์ˆ˜์ด๋‹ค. ๊ด„ํ˜ธ์•ˆ์˜ ๋‚ด์šฉ์„ ์ถœ๋ ฅํ•ด์ค€๋‹ค. ๋‹จ์–ด๋‚˜ ๋ฌธ์žฅ์„ ์ ์„๋•Œ๋Š” ์Œ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ์ฃผ์–ด์•ผํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ;(์„ธ๋ฏธ์ฝœ๋ก )์œผ๋กœ ์ฝ”๋“œ๋ฅผ ๋‹ซ์•„์ค€๋‹ค.

์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ์ปดํ“จํ„ฐ๋Š” ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ๋‹ค. ์ปดํ“จํ„ฐ๋Š” 0๊ณผ 1๋งŒ ์ดํ•ดํ•˜๊ธฐ ๋•Œ๋ฌธ! ๊ทธ๋ž˜์„œ ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ 0๊ณผ 1๋กœ ๋ฒˆ์—ญํ•ด์ฃผ๋Š” ์ค‘๊ฐ„๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค. ์ด๋Ÿฐ ์ž‘์—…์„ compiler๋ผ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์ˆ˜ํ–‰ํ•ด์ค€๋‹ค. ์ง์ ‘์ž‘์„ฑํ•œ ์ฝ”๋“œ๋Š” "์†Œ์Šค์ฝ”๋“œ", 2์ง„๋ฒ•์œผ๋กœ ๋ฒˆ์—ญ๋œ ์ฝ”๋“œ๋Š” "๋จธ์‹ ์ฝ”๋“œ"๋ผ๊ณ  ํ•œ๋‹ค.

2. Terminal์ฐฝ๊ณผ ๋ช…๋ น ํ”„๋กฌํฌํŠธ

html, css์™€ ๋‹ฌ๋ฆฌ C์—์„œ๋Š” ํ„ฐ๋ฏธ๋„๊ณผ ํ”„๋กฌํ”„ํŠธ๋ผ๋Š” ๊ฐœ๋…์ด ๋“ฑ์žฅํ•œ๋‹ค...๋„ˆ๋ฌด๋‚˜ ์ƒ์†Œํ•œ ๊ฐœ๋…์ด์–ด์„œ ์•„๋ž˜ ๋ธ”๋กœ๊ทธ์˜ ์„ค๋ช…์„์ฐธ๊ณ ํ•˜์˜€๋‹ค.
https://medium.com/@psychet_learn/cli-cli-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%82%AC%EC%9A%A9%EB%B2%95-c8d000ebc162

์šฐ์„  ๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค(CLI,Command Line Interface) ๋˜๋Š” ๋ช…๋ น์–ด ์ธํ„ฐํŽ˜์ด์Šค๋Š” ํ…์ŠคํŠธ ํ„ฐ๋ฏธ๋„์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์™€ ์ปดํ“จํ„ฐ๊ฐ€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ๋œปํ•œ๋‹ค. ์ฆ‰, ์ž‘์—… ๋ช…๋ น์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ปดํ“จํ„ฐ ํ‚ค๋ณด๋“œ ๋“ฑ์„ ํ†ตํ•ด ๋ฌธ์ž์—ด์˜ ํ˜•ํƒœ๋กœ ์ž…๋ ฅํ•˜๋ฉฐ, ์ปดํ“จํ„ฐ๋กœ๋ถ€ํ„ฐ์˜ ์ถœ๋ ฅ ์—ญ์‹œ ๋ฌธ์ž์—ด์˜ ํ˜•ํƒœ๋กœ ์ฃผ์–ด์ง„๋‹ค. ( - ์œ„ํ‚ค๋ฐฑ๊ณผ - )

Terminal์€ ์ด๋Ÿฌํ•œ ์ž…์ถœ๋ ฅ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋‚˜ ํ•˜๋“œ์›จ์–ด๋ฅผ ์นญํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  $ํ‘œ์‹œ๋กœ ์‚ฌ์šฉ์ž์˜ ๋ช…๋ น์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ๋’ค์— ์‹คํ–‰ํ•  ๋ช…๋ น์–ด๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์—”ํ„ฐ๋ฅผ ์น˜๋ฉด ๋œ๋‹ค.

3.ํ„ฐ๋ฏธ๋„์ฐฝ์— ๋ช…๋ น์–ด ์ž‘์„ฑ

$ clang hello.c

clang์€ ์ฝ”๋“œ ์ปดํŒŒ์ผ๋Ÿฌ๋กœ, "hello.c"ํŒŒ์ผ์„ ๋จธ์‹ ์ฝ”๋“œ๋กœ ๋ฒˆ์—ญํ•ด์ค€๋Š” ๋ช…๋ น์–ด. ์‹คํ–‰ํ•˜๋ฉด "a.out"์ด๋ผ๋Š” ๋จธ์‹ ์ฝ”๋“œํŒŒ์ผ์ด ์ƒ์„ฑ๋จ

./a.out

"./a.out" ์ปดํ“จํ„ฐ๊ฐ€ ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” a.out์ด๋ผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๋ช…๋ น์–ด. enter๋ฅผ ์น˜๋ฉด "hello,world"๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค!!!

$ clang -o hello hello.c

๋ช…๋ นํ–‰ ์ธ์ž๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋จธ์‹ ์ฝ”๋“œ๋ฅผ ๋‹ค๋ฅธ ํŒŒ์ผ๋ช…์œผ๋กœ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค. -o ๋’ค์— ์ƒˆ ํŒŒ์ผ๋ช…์„ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
ls๋ช…๋ น์–ด๋Š” list๋ผ๋Š” ์˜๋ฏธ๋กœ, ํ˜„์žฌ ํด๋”๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ํŒŒ์ผ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. rm๋ช…๋ น์–ด๋Š” ํŒŒ์ผ์„ ์‚ญ์ œ__ํ•œ๋‹ค. ํŒŒ์ผ๋ช… ์˜ค๋ฅธ์ชฝ์˜ *ํ‘œ์‹œ๋Š” ์‹คํ–‰๊ฐ€๋Šฅํ•œ ๋จธ์‹ ์ฝ”๋“œ ํŒŒ์ผ์—๋งŒ ๋‚˜ํƒ€๋‚œ๋‹ค.

profile
i๐ŸŽS ๊ฐœ๋ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค

0๊ฐœ์˜ ๋Œ“๊ธ€