π 7κ°: λ³μ μ μΈκ³Ό μ€μ½ν μ ν κ·μΉ
μλ
νμΈμ! μ€λμ C μΈμ΄ μ½λ©μμ μ λ λΉΌλμ μ μλ λ³μ μ μΈκ³Ό μ€μ½ν κ΄λ¦¬ μ΄μΌκΈ°λ₯Ό λ€κ³ μμ΅λλ€.
λ³μλ₯Ό μλͺ» μ°λ©΄ νλ‘κ·Έλ¨μ κΈλ°© λ²κ·Έ μ²κ΅ πμΌλ‘ λ³ν΄λ²λ¦¬μ£ .
MISRA-Cλ μ΄λ₯Ό λ°©μ§νκΈ° μν΄ μ¬λ¬ κ·μΉμ μ μνκ³ μμ΄μ.
1. μ μ λ³μ μ¬μ© μ΅μν π
μ μ λ³μ(Global Variable)λ νΈλ¦¬ν΄ 보μ΄μ§λ§, νλ‘κ·Έλ¨ μ 체μ μν₯μ λ―ΈμΉκΈ° λλ¬Έμ μμΈ‘ λΆκ°λ₯ν λΆμμ©μ μ λ°ν μ μμ΄μ.
MISRA-Cμμλ μ μ λ³μ μ¬μ©μ κΌ νμν κ²½μ°μλ§ μ νμ μΌλ‘ νμ©ν©λλ€.
β ν:
- λμ ν¨μ λ§€κ°λ³μλ μ μ (static) μ§μ λ³μλ₯Ό μ¬μ©νμΈμ.
- νμ μ "λκ° μ΄ κ°μ λ°κΏ¨λμ§" μΆμ νκΈ° ν¨μ¬ μ¬μμ§λλ€!
2. λ³μ Shadowing λ°©μ§ π
int value = 10;
void func() {
int value = 20; // π¨ μ μ λ³μμ κ°μ μ΄λ¦ -> shadowing λ°μ!
}
μ μμμ²λΌ κ°μ μ΄λ¦μ λ³μλ₯Ό μ€μ²© μ€μ½νμμ μ μΈνλ©΄, λ°κΉ₯ λ³μκ° κ°λ €μ Έ νΌλμ μ€λλ€.
MISRA-Cλ μ΄λ° μν©μ μ격ν κΈμ§ν©λλ€.
β ν:
- λ³μ μ΄λ¦μ μ€μ½νμ λ§κ² λͺ ννκ³ κ³ μ νκ² μμ±νμΈμ.
- ν¨μ λ΄λΆμμλ
count_local, μ μ λ³μλΌλ©΄g_countκ°μ λ€μ΄λ° κ·μΉμ μΈμ°λ©΄ μ’μμ.
3. λͺ νν μ΄κΈ°ν π οΈ
C μΈμ΄μ μ§μλ³μλ μλμΌλ‘ μ΄κΈ°νλμ§ μμ → μ΄κΈ°ννμ§ μμΌλ©΄ μ°λ κΈ° κ°μ΄ λ€μ΄κ°λλ€.
MISRA-Cλ λͺ¨λ λ³μλ₯Ό μ μΈν λ λ°λμ μ΄κΈ°νν κ²μ κΆμ₯ν©λλ€.
int counter = 0; // π λͺ
νν μ΄κΈ°ν
float ratio = 0.0; // π μμ ν μμμ
β ν:
- 루ν λ³μλ μ μΈκ³Ό λμμ μ΄κΈ°ννμΈμ.
- ν¬μΈν°λ
NULLλ‘ μ΄κΈ°νν΄ λλ©΄ λλ²κΉ μ λμμ΄ λ©λλ€.
π― μ€λμ ν΅μ¬ μ 리
- μ μ λ³μλ μ΅μν → νλ‘κ·Έλ¨ μμΈ‘ κ°λ₯μ± μ¦κ°
- λ³μ Shadowing κΈμ§ → νΌλ λ°©μ§
- λͺ¨λ λ³μλ μ΄κΈ°ν → μμ ν μμ 보μ₯
π’ λ€μ νμ°¨ μκ³
π ν¨μ μ€κ³ κ·μΉκ³Ό μ¬μ¬μ© κ°λ₯ν μ½λ μμ± π
"κΉ¨λνκ³ μ¬μ¬μ© κ°λ₯ν ν¨μ λ§λ€κΈ°"μ λν΄ μμλ³Όκ²μ!
μ€λλ μμ ν C μ½λ© μ΅κ΄μ μν΄ ν κ±Έμ λ λμκ°μ΅λλ€. π
'SW Dev. > MISRA-C' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| (MISRA-C 9κ°) MISRA-Cμ μ μ λΆμ λꡬ νμ© μ λ΅ (0) | 2025.10.05 |
|---|---|
| (MISRA-C 8κ°) ν¨μ μ€κ³ κ·μΉκ³Ό μ¬μ¬μ© κ°λ₯ν μ½λ μμ± (0) | 2025.09.15 |
| (MISRA-C 6κ°) μ μ²λ¦¬κΈ° μ¬μ© κ·μΉκ³Ό μ½λ κ°λ μ± ν보 (0) | 2025.09.07 |
| (MISRA-C 5κ°) ν¬μΈν° μ¬μ© μ νκ³Ό μμ ν λ©λͺ¨λ¦¬ μ κ·Ό (1) | 2025.08.21 |
| (MISRA-C 4κ°) μ μ΄ νλ¦κ³Ό 쑰건문 κ·μΉ (4) | 2025.08.16 |
