ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๊ณผ์ •

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