c & c++

[C] ν•¨μˆ˜, static, λ°°μ—΄

쑰밈밍 2022. 9. 14. 16:53

 

πŸ’‘ ν•¨μˆ˜

: μž…λ ₯을 ν•˜λ©΄ 그에 λ”°λ₯Έ κ²°κ³Όκ°€ 좜λ ₯λ˜μ–΄ λ‚˜μ˜¨λ‹€.

: μž…λ ₯이 달라지더라도 μˆ˜ν–‰ν•˜λŠ” 일은 λ™μΌν•˜λ―€λ‘œ 같은 λͺ¨λ“ˆ μž¬μ‚¬μš©.

: νŠΉμ •ν•œ κΈ°λŠ₯을 λ…λ¦½μ μœΌλ‘œ μˆ˜ν–‰ν•˜λ„λ‘ λ§Œλ“¦.

- ν•¨μˆ˜ μ„ μ–Έ : ν•¨μˆ˜κ°€ μ–΄λ–€ ν˜•νƒœμΈμ§€ λ³΄μ—¬μ£ΌλŠ”κ²ƒ, ν•¨μˆ˜ 이름, ν•¨μˆ˜μ˜ μž…μΆœλ ₯을 λͺ…μ‹œ

                   : 좜λ ₯ λ°μ΄ν„°ν˜• ν•¨μˆ˜λͺ… (μž…λ ₯ μžλ£Œν˜• λ³€μˆ˜λͺ…, μž…λ ₯ μžλ£Œν˜• λ³€μˆ˜λͺ…...);

❗ 좜λ ₯ λ˜λŠ” μž…λ ₯ μžλ£Œν˜•μ΄ 없을 λ•ŒλŠ” voidλ‚˜ 아무것도 쓰지 μ•ŠλŠ”λ‹€.

❗ ν•¨μˆ˜μ—μ„œ 값을 λŒλ €μ£Όμ§€ μ•Šκ³ , ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•œ 곳으둜 λ°”λ‘œ μ œμ–΄κ°€ λ„˜μ–΄κ°ˆ λ•ŒλŠ” 결과값을 μž…λ ₯ν•˜μ§€ μ•Šκ³ ,

κ·Έλƒ₯ return; 이라고만 μ λŠ”λ‹€.

#include <stdio.h>

int sum(int x, int y);	// ν•¨μˆ˜ μ„ μ–Έ

int main() {
	
	int x = 10, y = 20;
	int result;

	result = sum(x, y);	// ν•¨μˆ˜ 호좜
	
	printf("λ”ν•œκ°’μ€ >> %d", result);

	return 0;	
}

int sum(int x, int y) {	// ν•¨μˆ˜ μ •μ˜
	return x + y;	// 호좜된 ν•¨μˆ˜μ˜ μ‹€ν–‰ κ²°κ³Όλ₯Ό main()으둜 λŒλ €μ€€λ‹€.
}

 

❗ Cμ–Έμ–΄ : ꡬ쑰적 ν”„λ‘œκ·Έλž˜λ°

- ν”„λ‘œκ·Έλž˜λ°μ˜ 흐름이 순차적.

- 쑰건에 λ”°λ₯Έ λΆ„κΈ°λ₯Ό 톡해 흐름 μ œμ–΄

- λ°˜λ³΅λ¬Έμ„ μ‚¬μš©ν•΄ ν”„λ‘œκ·Έλž˜λ°μ˜ 흐름을 λ°˜λ³΅ν•˜μ—¬ μˆ˜ν–‰.

- νŠΉμ •ν•œ κΈ°λŠ₯을 λͺ¨λ“ˆν™” ν•œλ‹€.

* λͺ¨λ“ˆν™” : λ³„λ„μ˜ κΈ°λŠ₯을 ν•¨μˆ˜λ‘œ κ΅¬ν˜„ν•œλ‹€.

 

πŸ’‘ 정적 λ³€μˆ˜ static

: static λ°μ΄ν„°ν˜• λ³€μˆ˜λͺ… => 정적 λ³€μˆ˜

: ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 쀑 λ”± ν•œ 번만 μƒμ„±λ˜κ³  μ΄ˆκΈ°ν™”λœλ‹€.

: ν•¨μˆ˜ μ‹€ν–‰ λλ‚˜λ„ μ‚¬λΌμ§€μ§€μ•Šκ³  계속 μœ μ§€λ˜λŠ” λ³€μˆ˜

: 정적 λ³€μˆ˜μ˜ λ©”λͺ¨λ¦¬λŠ” μ‹œμŠ€ν…œμ— λ°˜ν™˜λ˜μ§€ μ•Šκ³  κ·ΈλŒ€λ‘œ λ‚¨μ•„μžˆλ‹€.

: μ§€μ—­λ³€μˆ˜μ˜ ν•œκ³„ 극볡, 지역 λ³€μˆ˜ -> 정적 λ³€μˆ˜

❗ 지역 λ³€μˆ˜ / μ „μ—­ λ³€μˆ˜

* 지역 λ³€μˆ˜κ°€ 더 μš°μ„ !

πŸ’‘ λ°°μ—΄

: μ—¬λŸ¬ 연속적인 값을 μ €μž₯

: [λ°°μ—΄μ˜ 크기] == μ—°μ†μ μœΌλ‘œ λ©”λͺ¨λ¦¬λ₯Ό ν• λ‹Ήν•˜μ—¬ μ„€μ •ν•œ 크기만큼 정보λ₯Ό μ €μž₯ν•˜κ² λ‹€.

: λ°μ΄ν„°ν˜• λ°°μ—΄λͺ…[λ°°μ—΄ 크기];

ex) int a[3] = {0,1,2}; μ„ μ–Έκ³Ό λ™μ‹œμ— μ΄ˆκΈ°ν™”

 int a[] = {0,1,2}; // μ•Œμ•„μ„œ μ €μž₯곡간 할당함

int a[30] = {0 , }; // 0으둜 μžλ™ μ΄ˆκΈ°ν™”

 

 

πŸ’‘ μžλ£Œν˜• 크기 sizeof

: μžλ£Œν˜•(νƒ€μž…)의 크기 λ°”μ΄νŠΈ(byte) λ‹¨μœ„λ‘œ ꡬ함

- sizeof ν‘œν˜„μ‹

- sizeof(μžλ£Œν˜•)

- sizeof(ν‘œν˜„μ‹)

 

πŸ’‘ μ •μˆ˜ν˜• μ΅œλŒ€κ°’, μ΅œμ†Œκ°’ 

: #include <limits.h>

 

πŸ’‘  μ‹€μˆ˜ν˜• μ΅œλŒ€κ°’, μ΅œμ†Œκ°’ 

: #include <float.h>

: float -> FLT_MIN, FLT_MAX

: double -> DBL_MIN, DBL_MAX

: long double -> LDBL_MIN, LDBL_MAX

❗ μ„œμ‹ μ§€μ •μž : %.2f : ν•΄λ‹Ή 숫자만큼 μ†Œμˆ˜μ  이해 자릿수λ₯Ό 좜λ ₯ν•œλ‹€.