ํ๋ก๊ทธ๋จ ์คํ ๊ณผ์
graph LR
A[์์ํจ์ ์์ฑ] --> |Compiler|B(์ค๋ธ์ ํธ ํ์ผ ์์ฑ)
B-->|Linker|C[์คํํ์ผ ์์ฑ]
- Compiler : ๊ณ ๊ธ ์ธ์ด๋ก ์์ฑ๋ ํ์ผ์ ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญํด์ค.
- Linker : ์์ค์ฝ๋์ ์์คํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ์ ์ฐ๊ฒฐ์ํด. ๋ชฉ์ ํ์ผ ์ฌ๋ฌ๊ฐ๋ฅผ ์ฐ๊ฒฐ์์ผ ์คํํ์ผ ํ๋๋ฅผ ์์ฑํจ.
์ ์ฒ๋ฆฌ๊ธฐ
#include < ํค๋ํ์ผ๋ช
.h > // ์์คํ
ํค๋ํ์ผ
- # : ์ ์ฒ๋ฆฌ๊ธฐ ์ง์์
- .h : ํค๋ํ์ผ
- ์์คํ (์ปดํ์ผ๋ฌ)์ ์๋ ํค๋ํ์ผ ์ฌ์ฉํ ๊ฒฝ์ฐ <>์ฌ์ฉ
#include " ํค๋ํ์ผ๋ช
.h " // ์ฌ์ฉ์๊ฐ ๋ง๋ ํค๋ํ์ผ
- ์ฌ์ฉ์๊ฐ ๋ง๋ ํค๋ํ์ผ์ผ ๊ฒฝ์ฐ "" ์ฌ์ฉ
ํจ์ ํํ
int main(void) //์๋ฃํ ์
๋ ฅ (void)
{
//ํจ์๋ด์ฉ
return 0; // 0์ด๋ผ๋ ๊ฐ์ ๋ฐํํจ
}
printf
printf("hello world! /n"); ///n์ ๊ฐํ
printf("%s /n", "hello world"); // ์์ ๋ฌธ์ ์ฌ์ฉ๊ฐ๋ฅ
printf("%s %s /n", "hello", "world"); // ์ฌํ์ฉ ์ฉ์ด
์ฃผ์
// // ํ์ค ์ฃผ์
/* (๋ด์ฉ) */ // ์ฌ๋ฌ์ค ์ฃผ์
ํค์๋
๊ณ ์ ๋ ์๋ฏธ๋ฅผ ๊ฐ๋ ์์ฝ๋ ๋จ์ด (์์ฝ์ด)
์๋ณ์(idenfifier)
ํค์๋ ์ธ์ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉ์๊ฐ ํ์์ ๋ฐ๋ผ ์ด๋ฆ์ ๋ง๋ค์ด ์ฌ์ฉํ๋ ๋จ์ด
โ ๊ท์น์ด ์กด์ฌํ๋ค.
- ์ฒซ๊ธ์ ์ซ์ ์๋๋ค.
- ์ธ ์ ์๋ ๋ฌธ์๊ฐ ์ ํ๋์ด ์๋ค.
- ๋์๋ฌธ์ ๊ตฌ๋ณ
- ํค์๋ ์ฌ์ฉ๋ถ๊ฐ
์์(constant)
- ํ๋ก๊ทธ๋จ์ ์คํ ์์๋ถํฐ ๋๋ ๋๊น์ง ๊ฐ์ด ๋ณํ์ง ์๋ ์๋ฃ
- ๋ฌธ์ ํ๊ฐ๋ โ๋ก ํ์
- ๋ฌธ์์ด์ ""์ผ๋ก ํ์
- ๊ธฐํธ ์์(ํ์ด ๊ฐ์) ๋ ์ ์ฒ๋ฆฌ๋ฌธ์ธdefine์ ์ด์ฉํด ์์๋ช ๊ณผ ๊ฐ์ ์ง์ ํ ํ ์ฌ์ฉ ์ปดํ์ผ ์ด์ ์ ์์๋ช (PI)๋ฅผ ์ฐพ์ ๋ชจ๋ ๊ฐ(3.141592)๋ก ๋จ์ ์นํ
- ๋ฉ๋ชจ๋ฆฌ ์์๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ฐจ์งํ๋ค. ์ด ๊ฐ์ ์์์ด๋ฏ๋ก ๊ฐ์ ๋ณํ์ํฌ ์ ์๋ค.
const double PI = 3.141592
- ์ค๋ฅ ์์
#include <stdio.h>
int main(void)
{
int num1 = 10;
const int num2 = 50;
printf("num1 ์ด๊ธฐ๊ฐ :%d\n", num1);
printf("num2 ์ด๊ธฐ๊ฐ :%d\n", num2);
num1 = 20;
num2 = 30;
printf("num1 ์๋ก์ด๊ฐ :%d\n", num1);
printf("num2 ์๋ก์ด๊ฐ :%d\n", num2);
return 0;
}
// Main.c: In function โmainโ:
Main.c:13:7: error: assignment of read-only variable โnum2โ
num2 = 30;
^
๋ณ์(variable)
- ๊ฐ์ด ๊ณ์ ๋ณํ๋ ์ ์๋ ๊ฐ
- ์์๋ก ์๋ฃ๊ฐ์ ์ ์ฅํ ์ ์๋ ์ ์ฅ ์ฅ์
- ๋ณ์์ ๊ฐ์ ์ ์ฅํ ์ ์๊ณ , ์ด ๊ฐ์ ๊ณ์ ๋ณ๊ฒฝ ๊ฐ๋ฅ
- ๋ณ์ ์ ์ธ์ ํด์ผ ์ฌ์ฉํ ์ ์์
- ๋ณ์์ ์ด๊ธฐํ
- ์ ์ธ๋ ๋ณ์์ ์ฒ์์ผ๋ก ๊ฐ์ ์ ์ฅ
int age; // ์ด๋ ๊ฒ๋ง ์ ์ธํ๋ฉด dummy๊ฐ์ด ์ ์ฅ๋์ด ์์
int age = 20; // ์ด๊ธฐ์ 20์ด๋ผ๋ ๊ฐ์ด ๋ค์ด๊ฐ
- ๋ณ์ ๋์ ์ ์ธ
int a = 20, int b = 22;
#include <stdio.h>
int main(void)
{
int num1 = 10, num2;
printf("num1 ์ด๊ธฐ๊ฐ : %d\n", num1);
printf("num2 ์ด๊ธฐ๊ฐ : %d\n", num2);
num1 = 20;
num2 = 30;
printf("num1 ์๋ก์ด ๊ฐ : %d\n", num1);
printf("num2 ์๋ก์ด ๊ฐ : %d\n", num2);
return 0;
}
// ํ๋ก์ธ์ค๊ฐ ์์๋์์ต๋๋ค..
> num1 ์ด๊ธฐ๊ฐ : 10
num2 ์ด๊ธฐ๊ฐ : 0
num1 ์๋ก์ด ๊ฐ : 20
num2 ์๋ก์ด ๊ฐ : 30