3. 공백 규정 3. 4 들여쓰기 규정 각 들여쓰기 수준은 줄의 시작부터 4의 배수로 정렬되어야 합니다. switch문 내에서 case 라벨은 정렬되어야 하며, 각 case 블록의 내용은 그 위치에서부터 한 번 들여써야 합니다. 코드 라인이 너무 길어서 최대 라인 폭 내에 맞지 않을 때는 가능한 한 가장 읽기 쉽게 두 번째 라인과 후속 라인을 들여쓰십시오. 예시 sys_error_handler(int err) { switch (err) { case ERR_THE_FIRST: ... break; default: ... break; } // Purposefully misaligned indentation; see why? if ((first_very_long_comparison_here && second_v..
3. 공백 규정 3. 3 빈 줄 규정 한 줄에는 한 문장만 넣는다. 각 코드 블록 앞뒤에 빈 줄이 있어야 한다. 코드 블록의 예로는 반복문과, if…else 및 switch문, 연속적인 선언문 등이 있다. 각 소스 파일은 코드 끝에 종료를 알리는 주석과 그 다음 빈 줄이 있어야 한다. 예시 /** @file crc.h * * @brief Compact CRC library for embedded systems for CRC-CCITT, CRC-16, CRC-32. * * @par * COPYRIGHT NOTICE: (c) 2000, 2018 Michael Barr. This software is placed in the * public domain and may be used for any purpose..
3. 공백 규정 3. 2 정렬 규정 일련의 선언 내에 있는 변수 이름의 첫 문자를 정렬해야 합니다. struct 및 union의 멤버 이름은 첫 문자를 정렬해야 합니다. 인접한 대입문들 블록의 대입 연산자는 정렬되어야 합니다. 전처리기 지시문의 #는 #if 또는 #ifdef 시퀀스 내에서 지시문 자체가 들여쓰기될 수 있지만 항상 라인의 시작 부분에 위치해야 합니다. 예시 #ifdef USE_UNICODE_STRINGS # define BUFFER_BYTES 128 #else # define BUFFER_BYTES 64 #endif … typedef struct { uint8_t buffer[BUFFER_BYTES]; uint8_t checksum; } string_t; 이유 정렬은 시각적으로 유사성을 강..
2002년작. IMDB 7.1점 www.imdb.com/title/tt0251160/ John Q (2002) - IMDb Directed by Nick Cassavetes. With Denzel Washington, Robert Duvall, Gabriela Oltean, Kimberly Elise. John Quincy Archibald takes a hospital emergency room hostage when his insurance won't cover his son's heart transplant. www.imdb.com 우리나라였음 의료 시스템을 파괴하는 행위로 절대 나올 수 없는 내용이겠지만, 미국같이 의료보험에 대한 불만이 많은 나라에서는 가능한 영웅이겠다... 싶다. 🍖🍖🍖 (3/..
3. 공백 규정 3. 1 공백 규정 if, while, for, switch, return 키워드와 같은 줄에 추가 표현이 있을 때 각 키워드 뒤에 공백 한 칸이 있어야 합니다. 각 할당 연산자 =, +=, -=, *=, /=, %=, &=, |=, ^=, ~=, !=는 항상 앞과 뒤에 공백 한 칸씩 있어야 합니다. 각 이항 연산자 +, -, *, /, %, =, ==, !=, , &, |, ^, &&, ||는 항상 앞과 뒤에 공백 한 칸씩 있어야 합니다. 각 단항 연산자 +, -, ++, --, !, ~는 피연산자와 공백 없이 붙어 있어야 합니다. 포인터 연산자 * 및 &는 선언문 내에서는 앞뒤로 공백이 있어야하지만, 선언문이 아닌 경우 피연산자와 공백없이 붙어 있어야 합니다. 삼항 연산자인 ? 와 :..
2. 주석 규정 2. 2 주석의 위치와 내용 규정 모든 주석은 명료하고 완전한 문장으로 적절한 철자법과 문법 그리고 적절한 구두점을 사용하여 작성되어야 한다. 가장 유용한 주석은 일반적으로 규모가 큰 알고리즘의 한 단계를 수행하는 코드 블록의 앞에 위치한다. 이러한 코드 블록 다음에 꼭 빈 라인을 넣어야 한다. 그리고 이 블록 앞의 주석은 들여쓰기 수준이 같아야 한다. 뻔한 코드에 주석을 달지 않도록 한다. 읽는 이가 C 언어를 안다고 가정하자. 예를 들어, 변수, 함수 이름 및 연산자에의해서 한 줄 코드의 의미가 명확하지 않지만 짧은 주석이 명확히 할 수 있는 경우에만 end-of-line 주석을 사용해야 한다. 특히, 아래와 같이 별 도움이 되지 않으면서 불필요한 주석을 사용하지 않는다. numero
2. 주석 규정 2.1 주석에서 허용하는 형식 규정 C++ 스타일의 단일 행 주석(//으로 시작하는)은 전통적인 C 스타일 주석(/* ... */)의 유용하고 수용 가능한 대안이다. 주석에는 전처리기 토큰(token)인 /*, //, \ 가 포함되지 않아야 한다. 아래 두 경우 일시적으로라도 주석을 작성해서는 안 된다. 코드 블록을 일시적으로 비활성화하려면 전처리기의 조건부 컴파일 기능을 사용한다(예: #if 0 … #endif). 디버그 출력 정보의 수준을 높이기 위해 특별히 존재하는 모든 라인 또는 코드 블록은 #ifndef NDEBUG … #endif로 둘러싸야 한다. 예시 /* The following code was meant to be part of the build... ... safety_..
1. 일반 규정 1.8 자주 사용하는 키워드 규정 선언한 모듈 외부에서 볼 필요가 없는 모든 함수와 변수는 키워드 static을 사용하여 선언해야 합니다. 적절한 경우에 키워드 const를 항상 사용해야 합니다. 사용 예는 다음과 같습니다. 초기화 이후 변하지 않는 변수를 선언할 때 수정돼서는 안될 참조 호출(call-by-reference) 함수의 매개변수를 정의할 때(예를 들어, char const *param) 수정돼서는 안될 struct나 union의 항목을 정의할 때(예를 들어, 메모리 사상 입출력 주변장치의 레지스터를 위한 구조체 오버레이에서) 상수를 생성하는 #define에 대한 대안으로 사용 적절한 경우 키워드 volatile를 항상 사용해야 합니다. 사용 예는 다음과 같습니다. 인터럽트 ..