C 언어에서 안전한 변수 접근을 위한 네이밍 규칙

C 언어에서 변수 네이밍 규칙을 준수하면 코드 가독성과 유지보수성이 높아지고, 실수를 예방할 수 있습니다. 변수 이름은 코드의 의도를 명확히 전달하며, 잘못된 변수 이름으로 인한 오류를 줄이는 데 중요한 역할을 합니다. 이 기사에서는 C 언어에서 안전한 변수 접근을 위한 네이밍 규칙과 실용적인 팁을 제시합니다. 이를 통해 초보 개발자부터 숙련된 개발자까지 모두가 더 나은 코드를 작성할 수 있도록 돕고자 합니다.

목차
  1. 변수 네이밍의 중요성
    1. 안전하고 효율적인 코드 작성
    2. 문제 해결 능력 강화
    3. 협업과 코드 리뷰의 편의성
  2. 변수 이름의 기본 규칙
    1. C 언어에서 허용되는 변수 이름
    2. 변수 이름 작성 시 권장 사항
    3. 올바른 변수 이름의 예시
    4. 잘못된 변수 이름의 예시
  3. 헝가리안 표기법의 활용
    1. 헝가리안 표기법의 기본 원칙
    2. 헝가리안 표기법의 예시
    3. 헝가리안 표기법의 장점
    4. 헝가리안 표기법을 적용한 코드 예시
    5. 주의사항
  4. 의미 있는 변수 이름 작성법
    1. 의미 있는 이름을 선택하는 기준
    2. 명사와 동사의 조합
    3. 관례적인 네이밍 패턴
    4. 의미 있는 이름을 사용한 예시
    5. 의미 없는 이름의 문제점
    6. 의미 있는 이름 작성의 효과
  5. 전역 변수와 지역 변수의 구분
    1. 전역 변수의 네이밍 규칙
    2. 지역 변수의 네이밍 규칙
    3. 전역 변수와 지역 변수 구분의 예시
    4. 전역 변수와 지역 변수를 구분해야 하는 이유
    5. 구분 실수로 인한 문제와 해결
  6. 매크로와 상수 네이밍 규칙
    1. 매크로 네이밍 규칙
    2. 상수 네이밍 규칙
    3. 매크로와 상수의 사용 예시
    4. 매크로와 상수를 구분해야 하는 이유
    5. 네이밍 실수를 방지하는 방법
  7. 변수 네이밍에서의 피해야 할 실수
    1. 의미 없는 이름 사용
    2. 유사한 이름 사용
    3. 예약어와의 충돌
    4. 암묵적인 데이터 유형 암시
    5. 스코프 구분 실패
    6. 네이밍 규칙 위반
    7. 요약
  8. 연습 문제: 네이밍 규칙 적용
    1. 연습 문제 1: 잘못된 변수 이름 수정
    2. 연습 문제 2: 헝가리안 표기법 적용
    3. 연습 문제 3: 상수와 매크로 네이밍
    4. 연습 문제 4: 의미 없는 이름 수정
    5. 연습 문제 5: 전역 변수와 지역 변수 구분
  9. 요약

변수 네이밍의 중요성


C 언어에서 변수 이름은 단순히 데이터를 저장하는 공간의 식별자가 아니라, 코드의 의도를 나타내는 중요한 도구입니다. 잘 정의된 변수 이름은 코드 가독성을 높이고, 유지보수 시 실수를 줄이며, 협업 과정에서도 효과적인 소통 수단이 됩니다.

안전하고 효율적인 코드 작성


변수 이름을 명확하게 정하면 코드의 의미를 이해하기 쉬워져 개발 속도가 향상됩니다. 특히, 잘못된 변수 이름은 코드 오류의 주요 원인이 되므로, 적절한 네이밍은 오류를 예방하는 데도 필수적입니다.

문제 해결 능력 강화


적절한 변수 네이밍은 디버깅 과정에서 문제를 빠르게 찾아내고 수정하는 데 큰 도움이 됩니다. 변수 이름이 불분명하면 코드의 흐름을 파악하기 어려워지고, 수정 시 의도치 않은 결과를 초래할 수 있습니다.

협업과 코드 리뷰의 편의성


프로젝트의 규모가 커지거나 여러 명의 개발자가 참여할 경우, 변수 네이밍 규칙을 준수하면 팀원 간 소통이 원활해지고 코드 리뷰 과정이 단순화됩니다. 이는 프로젝트의 생산성과 품질 향상에 기여합니다.

변수 네이밍은 단순히 개인의 선호가 아니라, 안전하고 효율적인 코드 작성의 기본 원칙 중 하나입니다.

변수 이름의 기본 규칙


C 언어에서 변수 이름을 작성할 때는 특정 규칙을 반드시 따라야 합니다. 이러한 규칙을 준수하면 컴파일 오류를 방지하고, 코드를 더 명확히 작성할 수 있습니다.

C 언어에서 허용되는 변수 이름

  1. 변수 이름은 영문자(A–Z, a–z), 숫자(0–9), 밑줄(_)만 사용할 수 있습니다.
  2. 변수 이름은 숫자로 시작할 수 없습니다. 예: int 1variable; (잘못된 예)
  3. C 언어의 예약어는 변수 이름으로 사용할 수 없습니다. 예: int return; (잘못된 예)

변수 이름 작성 시 권장 사항

  • 의미 있는 이름 사용: 변수 이름은 해당 변수가 무엇을 나타내는지 설명해야 합니다. 예: int age; (좋은 예)
  • 밑줄 사용 규칙: 밑줄로 시작하는 이름은 주로 내부적으로 사용하거나 특별한 목적을 가진 변수로 간주됩니다. 예: _internalVar.
  • 대소문자 구분: C 언어는 대소문자를 구분하므로, 변수 이름의 일관성을 유지해야 합니다. 예: int scoreint Score는 다른 변수로 인식됩니다.

올바른 변수 이름의 예시

int studentCount; // 의미 있는 이름
float piValue;    // 규칙 준수
char _initial;    // 밑줄 사용

잘못된 변수 이름의 예시

int 123number;    // 숫자로 시작 (잘못된 예)
float return;     // 예약어 사용 (잘못된 예)
char name#;       // 특수문자 포함 (잘못된 예)

이 기본 규칙을 따르면 변수 이름으로 인해 발생할 수 있는 불필요한 오류를 줄이고, 코드의 가독성과 유지보수성을 높일 수 있습니다.

헝가리안 표기법의 활용


헝가리안 표기법(Hungarian Notation)은 변수 이름에 해당 변수의 데이터 유형이나 역할을 명시적으로 포함시켜 코드를 더 명확하게 작성할 수 있는 네이밍 방식입니다. 이는 특히 C 언어처럼 강력한 형식 검사를 제공하지 않는 언어에서 유용하게 사용됩니다.

헝가리안 표기법의 기본 원칙


헝가리안 표기법에서는 변수 이름이 두 부분으로 나뉩니다.

  1. 접두사(Prefix): 데이터 유형 또는 변수의 목적을 나타냅니다.
  2. 기본 이름(Base Name): 변수의 의미를 설명하는 이름입니다.

예: int nCount;

  • n: 정수를 의미하는 접두사
  • Count: 변수의 목적을 나타내는 기본 이름

헝가리안 표기법의 예시

int nAge;        // 정수 (n: integer)
float fHeight;   // 실수 (f: float)
char* pszName;   // 문자열 포인터 (psz: pointer to string)
bool bIsActive;  // 논리 값 (b: boolean)

헝가리안 표기법의 장점

  1. 코드 가독성 향상: 변수의 데이터 유형을 직관적으로 이해할 수 있어 코드 해석이 용이합니다.
  2. 디버깅 효율 증가: 데이터 유형과 변수 목적을 빠르게 파악해 오류를 쉽게 찾을 수 있습니다.
  3. 협업 시 통일성 제공: 팀원 간 변수 이름의 일관성을 유지합니다.

헝가리안 표기법을 적용한 코드 예시

#include <stdio.h>
int main() {
    int nCount = 10;         // 정수 변수
    float fAverage = 12.5;   // 실수 변수
    char* pszMessage = "Hello, World!"; // 문자열 포인터

    printf("Count: %d, Average: %.2f, Message: %s\n", nCount, fAverage, pszMessage);
    return 0;
}

주의사항


헝가리안 표기법이 모든 경우에 적합한 것은 아닙니다. 데이터 유형이 너무 자주 바뀌는 경우, 접두사가 오히려 혼란을 야기할 수 있습니다. 따라서, 적용 여부는 프로젝트의 성격과 팀의 선호에 따라 결정하는 것이 좋습니다.

헝가리안 표기법은 C 언어에서 변수 네이밍을 체계화하고 코드의 명확성을 높이는 강력한 도구입니다. 이를 적절히 활용하면 안전하고 유지보수하기 쉬운 코드를 작성할 수 있습니다.

의미 있는 변수 이름 작성법


의미 있는 변수 이름은 코드의 가독성과 유지보수성을 크게 향상시킵니다. 변수 이름은 단순히 데이터를 저장하는 공간의 식별자가 아니라, 해당 데이터의 용도와 목적을 명확히 나타내는 도구로 사용됩니다.

의미 있는 이름을 선택하는 기준

  1. 명확성: 변수 이름은 해당 변수의 역할과 내용을 명확히 나타내야 합니다.
    예: int studentAge; (좋은 예) vs int sa; (나쁜 예)
  2. 일관성: 프로젝트 전체에서 동일한 컨벤션과 스타일을 유지해야 합니다.
    예: totalCost, itemCount (일관된 이름)
  3. 약어 최소화: 축약된 이름은 가독성을 떨어뜨릴 수 있습니다. 가능하면 풀어쓴 이름을 사용합니다.
    예: currentBalance (좋은 예) vs curBal (나쁜 예)

명사와 동사의 조합

  • 변수 이름은 대체로 명사로 시작하고, 필요하면 동사를 추가해 동작을 명확히 표현합니다.
    예: int retryCount;
    예: bool isVerified;

관례적인 네이밍 패턴

  1. 카멜 케이스(Camel Case): 소문자로 시작하고 각 단어의 첫 글자를 대문자로 씁니다.
    예: int studentCount;
  2. 스네이크 케이스(Snake Case): 단어 사이를 밑줄로 구분합니다.
    예: int student_count;

의미 있는 이름을 사용한 예시

#include <stdio.h>
int main() {
    int totalItems = 50;     // 총 아이템 수
    float averageScore = 85.5; // 평균 점수
    char gradeLetter = 'A';  // 성적 등급

    printf("Items: %d, Average Score: %.2f, Grade: %c\n", totalItems, averageScore, gradeLetter);
    return 0;
}

의미 없는 이름의 문제점

  1. 의도를 알기 어렵다:
    int a, b, c; (이름만으로 변수의 의미를 알 수 없음)
  2. 오류 발생 가능성 증가:
    비슷한 이름은 혼란을 초래할 수 있습니다.
    예: int val1, val2; (실수로 교환하거나 잘못 사용할 가능성 있음)

의미 있는 이름 작성의 효과

  • 코드 가독성 향상
  • 유지보수 및 협업 효율성 증대
  • 코드 리뷰 시 명확한 의사소통 가능

의미 있는 변수 이름 작성은 코드 품질을 높이는 기본 원칙입니다. 코드 작성 시 항상 변수의 역할과 의도를 반영한 이름을 선택하세요.

전역 변수와 지역 변수의 구분


C 언어에서 변수의 스코프(Scope)는 해당 변수가 어디서 접근 가능한지를 결정하며, 이를 기반으로 전역 변수와 지역 변수를 구분할 수 있습니다. 이 두 가지 변수 유형에 적절한 네이밍 규칙을 적용하면 코드의 가독성과 유지보수성을 높일 수 있습니다.

전역 변수의 네이밍 규칙


전역 변수는 프로그램의 모든 부분에서 접근 가능하므로, 명확히 구분할 수 있는 이름을 사용하는 것이 중요합니다.

  1. 접두사 추가: 프로젝트의 특정 영역과 연관된 전역 변수는 접두사를 사용해 명시적으로 구분합니다.
    예: g_를 접두사로 사용하여 전역 변수임을 표시
   int g_totalCount;  // 전역 변수
  1. 대문자와 밑줄 사용: 전역 변수는 주로 대문자와 밑줄로 구분하여 다른 변수와 명확히 구별합니다.
    예: int GLOBAL_COUNT;

지역 변수의 네이밍 규칙


지역 변수는 특정 블록(함수, 루프 등) 내에서만 유효합니다.

  1. 구체적이고 간결한 이름: 지역 변수는 해당 함수나 블록의 문맥에서 바로 이해할 수 있는 이름을 사용합니다.
    예:
   void calculateSum() {
       int sum = 0; // 지역 변수
   }
  1. 중복 이름 피하기: 다른 범위의 변수와 이름이 겹치지 않도록 주의합니다.

전역 변수와 지역 변수 구분의 예시

#include <stdio.h>

// 전역 변수
int g_totalCount = 0;

void incrementCount() {
    int localCount = 5; // 지역 변수
    g_totalCount += localCount; // 전역 변수와 지역 변수 사용
}

int main() {
    incrementCount();
    printf("Global Count: %d\n", g_totalCount);
    return 0;
}

전역 변수와 지역 변수를 구분해야 하는 이유

  1. 코드 혼란 방지: 전역 변수와 지역 변수가 구분되지 않으면 의도치 않은 값 변경이 발생할 수 있습니다.
  2. 디버깅 용이성: 변수의 영향을 명확히 파악할 수 있어 디버깅이 쉬워집니다.
  3. 협업 효율성: 팀 프로젝트에서 변수의 용도를 쉽게 이해할 수 있습니다.

구분 실수로 인한 문제와 해결

  • 동일한 이름을 가진 전역 변수와 지역 변수를 동시에 사용하는 경우, 예상치 못한 결과가 발생할 수 있습니다.
    해결책: 네이밍 규칙을 통해 전역 변수와 지역 변수를 명확히 구분하거나, 전역 변수 사용을 최소화합니다.

전역 변수와 지역 변수의 구분은 C 언어 코드를 명료하고 안전하게 유지하는 데 중요한 역할을 합니다. 이를 위한 체계적인 네이밍 규칙을 준수하면 코드 품질을 크게 향상시킬 수 있습니다.

매크로와 상수 네이밍 규칙


C 언어에서 매크로와 상수는 변경되지 않는 값을 나타내며, 명확한 네이밍 규칙을 통해 코드의 가독성과 유지보수성을 향상시킬 수 있습니다. 상수는 #define을 사용하거나 const 키워드로 정의되며, 매크로는 전처리 지시문으로 컴파일러가 처리합니다.

매크로 네이밍 규칙

  1. 대문자와 밑줄 사용: 매크로 이름은 일반적으로 대문자로 작성하며, 단어는 밑줄로 구분합니다.
    예:
   #define MAX_BUFFER_SIZE 1024
  1. 의미 있는 이름 사용: 매크로는 코드에서 사용 목적을 명확히 드러내야 합니다.
    예:
   #define PI 3.14159  // 수학 상수
   #define ERROR_CODE -1  // 에러 코드
  1. 접두사 활용: 프로젝트 내에서 공통적인 매크로에 접두사를 붙여 충돌을 방지합니다.
    예:
   #define APP_MAX_USERS 100
   #define APP_TIMEOUT 5000

상수 네이밍 규칙

  1. 대문자 사용 권장: 상수 이름도 매크로와 유사하게 대문자로 작성하여 가변 변수가 아님을 표시합니다.
    예:
   const int MAX_RETRIES = 5;
  1. 변수 형식 유지: 일반 변수처럼 카멜 케이스나 스네이크 케이스를 유지하며 명확성을 추가합니다.
    예:
   const double PiValue = 3.14159;  // 카멜 케이스

매크로와 상수의 사용 예시

#include <stdio.h>

// 매크로 정의
#define MAX_BUFFER_SIZE 1024
#define APP_NAME "MyApplication"

// 상수 정의
const int MAX_RETRIES = 5;

int main() {
    printf("App: %s\n", APP_NAME);
    printf("Max Buffer Size: %d\n", MAX_BUFFER_SIZE);
    printf("Max Retries: %d\n", MAX_RETRIES);

    return 0;
}

매크로와 상수를 구분해야 하는 이유

  1. 매크로: 컴파일 전 처리되며, 컴파일러가 소스 코드에 값을 그대로 삽입합니다.
  • 예: #define은 텍스트 대체로 처리됨.
  • 사용 사례: 플랫폼 종속 값, 디버깅 용도로 간단한 상수 정의.
  1. 상수: 변수를 생성하되 값 변경이 불가능합니다.
  • 예: const는 타입 검사와 디버깅에서 더 안전합니다.
  • 사용 사례: 수학 상수나 불변 데이터 표현.

네이밍 실수를 방지하는 방법

  • 중복 정의 방지: 매크로 이름은 유일해야 하며, 접두사로 충돌 가능성을 줄입니다.
  • 일관된 네이밍 스타일: 상수와 매크로 간의 차이를 명확히 구분합니다.

매크로와 상수는 코드에서 중요한 역할을 합니다. 이를 위한 명확한 네이밍 규칙을 준수하면 코드 가독성과 안정성이 크게 향상됩니다.

변수 네이밍에서의 피해야 할 실수


변수 네이밍은 코드의 가독성과 유지보수성에 직접적인 영향을 미칩니다. 그러나 무심코 저지르는 네이밍 실수는 디버깅과 협업을 어렵게 만들고 코드 오류의 원인이 될 수 있습니다. 아래에서는 변수 네이밍에서 흔히 발생하는 실수와 이를 예방하는 방법을 설명합니다.

의미 없는 이름 사용

  • 문제점: 변수 이름이 변수의 역할을 설명하지 못하면, 코드를 이해하는 데 시간이 많이 소요됩니다.
    예:
  int x, y, z;  // 의미 없는 이름
  • 해결 방법: 변수 이름은 변수의 의도를 명확히 나타내야 합니다.
    예:
  int width, height, depth;  // 의미 있는 이름

유사한 이름 사용

  • 문제점: 변수 이름이 지나치게 유사하면 혼동을 초래합니다.
    예:
  int item, items;  // 유사한 이름
  • 해결 방법: 변수 이름의 차이를 명확히 구분하여 실수를 방지합니다.
    예:
  int singleItem, itemCollection;  // 명확한 이름

예약어와의 충돌

  • 문제점: C 언어의 예약어를 변수 이름으로 사용하면 컴파일 오류가 발생합니다.
    예:
  int return;  // 예약어와 충돌
  • 해결 방법: 예약어는 변수 이름으로 사용할 수 없으므로 다른 이름을 선택합니다.
    예:
  int returnCode;  // 예약어와 충돌 방지

암묵적인 데이터 유형 암시

  • 문제점: 변수 이름에 데이터 유형을 암시하면 코드 수정 시 혼란을 초래할 수 있습니다.
    예:
  int stringCount;  // 이름에 데이터 유형이 포함되어 변경 시 혼란
  • 해결 방법: 변수 이름은 데이터의 역할을 강조하고 데이터 유형과 독립적으로 유지합니다.
    예:
  int count;  // 데이터 역할에 충실한 이름

스코프 구분 실패

  • 문제점: 전역 변수와 지역 변수가 동일한 이름을 가지면 코드에서 혼란을 일으킬 수 있습니다.
    예:
  int count;  // 전역 변수
  void increment() {
      int count;  // 지역 변수, 혼란 초래
  }
  • 해결 방법: 전역 변수와 지역 변수를 명확히 구분합니다.
    예:
  int g_count;  // 전역 변수
  void increment() {
      int localCount;  // 지역 변수
  }

네이밍 규칙 위반

  • 문제점: 프로젝트의 네이밍 컨벤션을 따르지 않으면 협업과 유지보수가 어려워집니다.
  • 해결 방법: 프로젝트에서 정의한 컨벤션을 준수하여 일관된 네이밍 스타일을 유지합니다.

요약


피해야 할 변수 네이밍 실수를 인지하고, 이를 해결하기 위한 명확한 규칙을 따르면 코드 품질이 향상됩니다. 의미 있는 이름을 사용하고, 스코프와 컨벤션을 고려하여 네이밍 실수를 방지하세요.

연습 문제: 네이밍 규칙 적용


배운 네이밍 규칙을 실제로 적용해보며, 변수 이름 작성의 효과를 확인할 수 있는 연습 문제를 제공합니다. 이를 통해 명확하고 가독성 높은 코드를 작성하는 데 익숙해질 수 있습니다.

연습 문제 1: 잘못된 변수 이름 수정


다음 코드는 변수 이름이 의미가 없거나 규칙을 따르지 않은 경우입니다. 이를 수정하세요.

원래 코드:

#include <stdio.h>
int x = 10, y = 20, z = 30;

void func() {
    int a, b;
    a = x + y;
    b = a * z;
    printf("Result: %d\n", b);
}

int main() {
    func();
    return 0;
}

수정 코드 예시:

  • 전역 변수는 접두사 g_를 붙이고, 지역 변수는 의미 있는 이름으로 변경
  • 규칙을 준수하여 가독성을 향상
#include <stdio.h>
int g_firstNumber = 10, g_secondNumber = 20, g_multiplier = 30;

void calculateAndPrint() {
    int sum, result;
    sum = g_firstNumber + g_secondNumber;
    result = sum * g_multiplier;
    printf("Result: %d\n", result);
}

int main() {
    calculateAndPrint();
    return 0;
}

연습 문제 2: 헝가리안 표기법 적용


다음 코드는 변수 이름에 데이터 유형이 포함되지 않았습니다. 헝가리안 표기법을 사용하여 변수 이름을 수정하세요.

원래 코드:

int age = 25;
float salary = 4500.75;
char name[] = "John Doe";

수정 코드 예시:

int nAge = 25;
float fSalary = 4500.75;
char szName[] = "John Doe";

연습 문제 3: 상수와 매크로 네이밍


다음 코드는 상수와 매크로의 네이밍 규칙을 따르지 않았습니다. 이를 수정하세요.

원래 코드:

#define maxvalue 100
const float pi = 3.14;

수정 코드 예시:

#define MAX_VALUE 100
const float PI = 3.14;

연습 문제 4: 의미 없는 이름 수정


다음은 직관적이지 않은 변수 이름을 사용한 코드입니다. 이를 명확히 수정하세요.

원래 코드:

int a = 5, b = 10, c = a + b;
printf("Sum: %d\n", c);

수정 코드 예시:

int firstNumber = 5, secondNumber = 10, sum = firstNumber + secondNumber;
printf("Sum: %d\n", sum);

연습 문제 5: 전역 변수와 지역 변수 구분


다음 코드에서 전역 변수와 지역 변수를 명확히 구분하세요.

원래 코드:

int count = 0;

void increment() {
    int count = 5;
    count++;
    printf("Count: %d\n", count);
}

수정 코드 예시:

int g_count = 0;

void increment() {
    int localCount = 5;
    localCount++;
    printf("Local Count: %d\n", localCount);
}

이 연습 문제를 통해 변수를 명확히 네이밍하고, 코드의 품질을 높이는 방법을 익혀보세요.

요약


C 언어에서 변수 네이밍 규칙은 안전하고 유지보수하기 쉬운 코드를 작성하는 데 필수적입니다. 본 기사에서는 의미 있는 이름 작성법, 헝가리안 표기법 활용, 전역 변수와 지역 변수 구분, 매크로와 상수의 네이밍 규칙, 그리고 피해야 할 실수를 다루었습니다.

이러한 규칙을 준수하면 코드 가독성과 유지보수성이 크게 향상되며, 협업 과정에서도 오류를 줄이고 효율성을 높일 수 있습니다. 배운 내용을 실습하고 일관된 네이밍 스타일을 유지해 더 나은 코드 품질을 달성하세요.

목차
  1. 변수 네이밍의 중요성
    1. 안전하고 효율적인 코드 작성
    2. 문제 해결 능력 강화
    3. 협업과 코드 리뷰의 편의성
  2. 변수 이름의 기본 규칙
    1. C 언어에서 허용되는 변수 이름
    2. 변수 이름 작성 시 권장 사항
    3. 올바른 변수 이름의 예시
    4. 잘못된 변수 이름의 예시
  3. 헝가리안 표기법의 활용
    1. 헝가리안 표기법의 기본 원칙
    2. 헝가리안 표기법의 예시
    3. 헝가리안 표기법의 장점
    4. 헝가리안 표기법을 적용한 코드 예시
    5. 주의사항
  4. 의미 있는 변수 이름 작성법
    1. 의미 있는 이름을 선택하는 기준
    2. 명사와 동사의 조합
    3. 관례적인 네이밍 패턴
    4. 의미 있는 이름을 사용한 예시
    5. 의미 없는 이름의 문제점
    6. 의미 있는 이름 작성의 효과
  5. 전역 변수와 지역 변수의 구분
    1. 전역 변수의 네이밍 규칙
    2. 지역 변수의 네이밍 규칙
    3. 전역 변수와 지역 변수 구분의 예시
    4. 전역 변수와 지역 변수를 구분해야 하는 이유
    5. 구분 실수로 인한 문제와 해결
  6. 매크로와 상수 네이밍 규칙
    1. 매크로 네이밍 규칙
    2. 상수 네이밍 규칙
    3. 매크로와 상수의 사용 예시
    4. 매크로와 상수를 구분해야 하는 이유
    5. 네이밍 실수를 방지하는 방법
  7. 변수 네이밍에서의 피해야 할 실수
    1. 의미 없는 이름 사용
    2. 유사한 이름 사용
    3. 예약어와의 충돌
    4. 암묵적인 데이터 유형 암시
    5. 스코프 구분 실패
    6. 네이밍 규칙 위반
    7. 요약
  8. 연습 문제: 네이밍 규칙 적용
    1. 연습 문제 1: 잘못된 변수 이름 수정
    2. 연습 문제 2: 헝가리안 표기법 적용
    3. 연습 문제 3: 상수와 매크로 네이밍
    4. 연습 문제 4: 의미 없는 이름 수정
    5. 연습 문제 5: 전역 변수와 지역 변수 구분
  9. 요약