ν‹°μŠ€ν† λ¦¬ λ·°

πŸ–₯️ μƒμˆ˜μ™€ λ³€μˆ˜

 

πŸ›œ μžλ£Œν˜• (data type)

 

πŸ›œ μƒμˆ˜ (constant)

⇨ 항상 κ³ μ •λœ 값을 κ°–λŠ” 자료
⇨ 값이 ν•œ 번 μ •ν•΄μ§€λ©΄ ν”„λ‘œκ·Έλž¨ 도쀑 κ°’ 변경이 λΆˆκ°€ν•œ 수
⇨ μ •μˆ˜ν˜• / μ‹€μˆ˜ν˜• / λ¬Έμžν˜•(' ') / λ¬Έμžμ—΄(" ") μƒμˆ˜

 

 

β‡’ python의 print()μ—λŠ” end="\n" μ˜΅μ…˜μ΄ μˆ¨μ–΄μžˆλŠ” 반면,
γ€€C μ–Έμ–΄μ˜ printf()μ—λŠ” μžλ™ 쀄 λ°”κΏˆμ΄ μ—†λ‹€.

 



https://velog.io/@hyemin95928/literal-vs-constant-λ¦¬ν„°λŸ΄κ³Ό-μƒμˆ˜μ˜-차이점


πŸ›œ λ³€μˆ˜

⇨ λ³€ν•  수 μžˆλŠ” κ°’

⇨ ν”„λ‘œκ·Έλž¨μ—μ„œ λ³€μˆ˜λŠ”?
ΰ§Ή ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 도쀑 λ³€ν•  수 μžˆλŠ” 값이 μ €μž₯λ˜λŠ” κΈ°μ–΅ 곡간을 의미
(λ©”λͺ¨λ¦¬ 곡간을 μ°Έμ‘°ν•˜λŠ” 이름 = λ³€μˆ˜λͺ…)
ΰ§Ή λ³€μˆ˜ 속에 λ“€μ–΄κ°€λŠ” 값은 μˆ˜μ‹œλ‘œ λ³€κ²½ κ°€λŠ₯

⇨ λ³€μˆ˜λŠ” μ‚¬μš© 전에 λ°˜λ“œμ‹œ μ„ μ–Έ (μ»΄νŒŒμΌλŸ¬κ°€ κΈ°μ–΅ κ³΅κ°„μ—μ„œ 일정 곡간을 ν™•λ³΄ν•˜λ„λ‘) 
ΰ§Ή νŒŒμ΄μ¬μ€ μ„ μ–Έν•˜μ§€ μ•Šμ•„λ„ 됨 (java, c 등은 λ°˜λ“œμ‹œ μ„ μ–Έν•΄μ•Ό 함)

βœ“ λ³€μˆ˜μ˜ νŠΉμ§•

⇨ λͺ¨λ“  λ³€μˆ˜λŠ” λ³€μˆ˜λͺ…을 가짐
⇨ λͺ¨λ“  λ³€μˆ˜λŠ” μ •ν•΄μ§„ μžλ£Œν˜•(type)을 가짐
⇨ λͺ¨λ“  λ³€μˆ˜λŠ” ν• λ‹Ήλœ 값을 가짐
 

βœ“ λ³€μˆ˜λͺ… μ •μ˜ κ·œμΉ™

⇨ λͺ¨λ“  λ³€μˆ˜λŠ” μ‚¬μš© μ „ μ„ μ–Έ
⇨ λ³€μˆ˜λͺ…은 λ°˜λ“œμ‹œ 영문자, 밑쀄(_)둜 μ‹œμž‘
(쀑간에 숫자, 밑쀄을 μ„žμ–΄ λͺ…λͺ…ν•  수 있음)
⇨ λ³€μˆ˜λͺ…은 밑쀄 이외 특수문자 μ‚¬μš© κΈˆμ§€
⇨ λ³€μˆ˜λͺ…은 λŒ€μ†Œλ¬Έμž ꡬ뢄 / μ˜ˆμ•½μ–΄ μ‚¬μš© λΆˆκ°€


πŸ–₯️ μžλ£Œν˜•κ³Ό λ³€μˆ˜ μ„ μ–Έ

βœ“ λ³€μˆ˜
자료λ₯Ό μ €μž₯ν•  κΈ°μ–΅ 곡간을 ν™•λ³΄ν•˜κ³ , 곡간에 이름을 뢙인 것
βœ“ λ³€μˆ˜ μ„ μ–Έ
ν™•λ³΄λœ κΈ°μ–΅ 곡간에 이름을 λΆ€μ—¬ν•˜λŠ” 것
≫ λ³€μˆ˜ 선언을 μœ„ν•΄ 'μžλ£Œν˜•'이 ν•„μš”
 

πŸ›œ μžλ£Œν˜•

⁕ μžλ£Œν˜•μ˜ μ’…λ₯˜

 

πŸ›œ κΈ°λ³Έ μžλ£Œν˜•μ˜ 크기와 λ²”μœ„

⁕ μ •μˆ˜ν˜•
• int, short, long, unsigned ν˜•
• μš΄μ˜μ²΄μ œμ— 따라 ν‘œν˜„ λ²”μœ„κ°€ 닀름


⁕ μ‹€μˆ˜ν˜•
• float, double, long double ν˜•
• κΈ°λ³Έν˜•μ€ doubleν˜•


⁕ λ¬Έμžν˜•
• char, unsigned char ν˜•
• ASCII μ½”λ“œλ₯Ό μ‚¬μš©ν•΄ 처리
• -128 ~ 127κΉŒμ§€μ˜ 값을 ν‘œν˜„

#include <stdio.h>
void main() {
    char ch;
    int in;
    ch = in = 'A';	// μ‹€μ œλ‘œ A의 ASCII μ½”λ“œ κ°’ 65 μ‚¬μš©λ¨
    
    printf("\n ch = %d\n", ch);	// ASCII μ½”λ“œ κ°’μœΌλ‘œ 좜λ ₯
    printf(" in = %d\n", in);
    
    ch = in = 100;
    printf("\n ch = %c\n", ch);	// ch = μ†Œλ¬Έμž d
    printf(" in = %c\n", in);	// in = μ†Œλ¬Έμž d
    
    // λ¬΅μ‹œμ  ν˜•λ³€ν™˜μ— μ˜κ±°ν•¨
    // λŒ€λ¬Έμž A = 65 , μ†Œλ¬Έμž a = 97
}



⁕ μ—΄κ±°ν˜•
숫자 λŒ€μ‹  단어 μ‚¬μš©
ν˜•μ‹ : enum νƒœκ·Έλͺ… {μ—΄κ±°μž1, μ—΄κ±°μž2, ...}

 

πŸ›œ λ³€μˆ˜ μ„ μ–Έ

⇨ λ³€μˆ˜λͺ…, λ³€μˆ˜κ°€ κ°€μ§ˆ μžλ£Œν˜•μ„ μ§€μ •ν•˜μ—¬ λ³€μˆ˜λ₯Ό μœ„ν•œ 기얡곡간을 ν• λ‹Ήν•˜λŠ” 것


⁕ λ³€μˆ˜ μ„ μ–Έ μ‹œ κ³ λ € 사항
• λ³€μˆ˜μ— μ €μž₯될 κ°’μ˜ 크기(λ²”μœ„)
• λ³€μˆ˜μ˜ μ„ μ–Έ μœ„μΉ˜(μ „μ—­λ³€μˆ˜, μ§€μ—­λ³€μˆ˜)
• λ³€μˆ˜μ˜ μ΄ˆκΈ°ν™”

πŸ›œ λ³€μˆ˜λ₯Ό μ΄ˆκΈ°ν™”ν•˜μ§€ μ•Šμ€ 경우의 예

#include <stdio.h>
void main() {
    int i, sum;
    for(i=1; i<=10; i++)
    sum = sum+1;	// sum은 μ΄ˆκΈ°ν™” μ•ˆ ν•œ μƒνƒœ
    
    printf("1λΆ€ν„° 10κΉŒμ§€μ˜ ν•©=%d\n", sum);
}

/*
	μ‹€ν–‰ κ²°κ³Ό
	1λΆ€ν„° 10κΉŒμ§€μ˜ ν•©=4260155
*/

β‡’ 잘λͺ»λœ κ²°κ³Ό (μ“°λ ˆκΈ° κ°’)이 좜λ ₯λœλ‹€

 


πŸ–₯️ μ„ ν–‰μ²˜λ¦¬κΈ° (preprocessor)

μ»΄νŒŒμΌμ— μ•žμ„œ ν”„λ‘œκ·Έλž¨ 선두에 μ„ μ–Έλœ μ§€μ‹œμžλ“€μ„ 미리 μ²˜λ¦¬ν•˜λŠ” μ—­ν•  μˆ˜ν–‰
ΰ§Ή μ„ ν–‰ 처리기의 μ’…λ₯˜

 
⁕ μ„ ν–‰μ²˜λ¦¬κΈ° μ‚¬μš© μ‹œ 주의점
• λ°˜λ“œμ‹œ #둜 μ‹œμž‘
• λͺ…λ Ήλ¬Έ 끝에 ; μ•ˆ λΆ™μž„
• ν•œ 쀄에 ν•˜λ‚˜μ˜ λͺ…λ Ήλ§Œ μ‚¬μš©
• μ†ŒμŠ€ ν”„λ‘œκ·Έλž¨ 첫 뢀뢄에 μœ„μΉ˜
 

πŸ›œ 파일 포함

⁕ #include
• Cμ–Έμ–΄μ—μ„œ μ œκ³΅λ˜λŠ” ν—€λ”νŒŒμΌ (*.h)λ₯Ό
μžμ‹ μ˜ μ†ŒμŠ€νŒŒμΌμ— 읽어듀여 ν•¨κ»˜ 컴파일 ν•˜κ³ μž ν•  λ•Œ μ‚¬μš©
ex) C ν”„λ‘œκ·Έλž¨μ—μ„œ ν‘œμ€€ν•¨μˆ˜ printf(), scanf() 등을 μ‚¬μš©ν•˜λ €λ©΄?
β‡’ ν•΄λ‹Ή ν•¨μˆ˜μ˜ μ›ν˜•(prototype)이 μ„ μ–Έλœ ν‘œμ€€ μž…μΆœλ ₯ ν—€λ”νŒŒμΌμΈ stdio.h λ₯Ό #include

 

⁕ ν‘œμ€€ 헀더 파일

- ctype.h: 문자 검사
- math.h: μˆ˜ν•™ ν•¨μˆ˜
- stdlib.h: λ¬Έμžμ—΄ λ³€ν™˜, κΈ°μ–΅ 곡간 ν• λ‹Ή
- stdio.h : ν‘œμ€€ μž…μΆœλ ₯ ν•¨μˆ˜
- string.h: λ¬Έμžμ—΄ κ΄€λ ¨
- time.h: μ‹œκ°„ κ΄€λ ¨
... λ“±

 

πŸ›œ 맀크둜 μ •μ˜

⁕ #define
• 맀크둜(macro)
- μ„ ν–‰ 처리기 #define을 μ‚¬μš©ν•΄ λ‹¨μˆœ μΉ˜ν™˜λ˜λŠ” 자료
- ν”„λ‘œκ·Έλž¨ μž‘μ„± μ‹œ λͺ…λ Ή, μˆ˜μ‹, μƒμˆ˜κ°’μ΄ 자주 μ‚¬μš©λ  λ•Œ
이듀을 λŒ€ν‘œν•˜λŠ” 이름을 λΆ™μ—¬ μ‚¬μš©ν•˜λŠ” λŒ€μƒ
• 맀크둜 μ •μ˜
- 맀크둜 μƒμˆ˜ μ •μ˜
- 맀크둜 ν•¨μˆ˜ μ •μ˜

 

πŸ›œ 쑰건뢀 컴파일

⁕ #if #else #elif #endif
• 쑰건에 따라 ν”„λ‘œκ·Έλž¨μ„ μ»΄νŒŒμΌν•˜λŠ” λͺ…λ Ή
• 졜적의 μ½”λ“œλ‘œ ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•  수 μžˆμ–΄ μ‹œμŠ€ν…œ μ„±λŠ₯ ν–₯상


λŒ“κΈ€
곡지사항
μ΅œκ·Όμ— 올라온 κΈ€
μ΅œκ·Όμ— 달린 λŒ“κΈ€
Total
Today
Yesterday
링크
TAG more
Β«   2025/06   Β»
일 μ›” ν™” 수 λͺ© 금 ν† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
κΈ€ 보관함