4. 모듈 규정 4. 1 명명 관례 규정 모든 모듈 이름은 소문자, 숫자 및 밑줄로 구성되어야 합니다. 헤더 및 소스 파일 이름에 공백을 사용하면 안됩니다. 모든 모듈 이름은 앞 8자에 의해 고유해야 하며 헤더 및 소스 파일 이름에 대해 각각 .h와 .c로 끝나야 합니다. 모듈의 헤더 파일 이름은 C 또는 C++ 표준 라이브러리의 헤더 파일 이름을 공유해서는 안 됩니다. 예를 들어 모듈의 이름은 “stdio” 또는 “math“로 지정해서는 안됩니다. main() 함수를 포함하는 모듈은 소스 파일 이름의 일부로 “main”라는 단어를 포함해야 합니다. 예시 /** @file crc.h * * @brief Compact CRC library for embedded systems for CRC-CCITT, C..
3. 공백 규정 3. 6 출력되지 않는 문자 규정 가능하면 모든 소스 코드 라인은 'CR'-'LF'(0x0D 0x0A)가 아닌 단일 문자 'LF'(ASCII 0x0A)로만 끝나야 한다. 소스 코드 파일에서 허용되는 또다른 출력되지 않는 문자는 form feed 문자 'FF'(ASCII 0x0C)뿐이다. 예시 출력되지 않는 문자는 나타낼 수 없습니다. 이유 다중 문자 'CR'-'LF'는 단일 문자 'LF'보다 다중 플랫폼 개발 환경에서 문제를 일으킬 가능성이 높습니다. 이러한 문제중 하나는 유닉스 플랫폼의 다중 라인 전처리기 매크로와 관련있습니다. 시행 에디터 프로그램은 LF를 사용하도록 설정되어야 합니다. 또한 자동화된 도구는 빌드 중에 모든 새 소스코드 또는 수정된 소스코드 파일을 스캔하여 CR-LF ..
인간이 만들어낸 가장 거대하며 총체적 시스템은 국가라 할 수 있겠다. 이 시스템 중 가장 수명이 오래된 것이라 해봤자 로마제국이 1,200년 정도. 한반도에서 잉태된 국가를 살펴봐도 신라가 1천여년, 고려 500년, 조선도 500여년. 지구의 나이가 45억년이라 하니, 태양계, 더 큰 은하계를 생각하자면 우리 문명의 수명은 자연계의 그것과는 비교가 되질 않는다. 자연계는 규모 면에서도 끝없을 만큼 거대하면서 그 수명 또한 상상초월이다. 어떻게 이것이 가능한가? 무엇이 다르길래... 내 짧은 생각으론 그 힘은 '순환'에 있다. 무언가 고정돼 있지 않고 변이하며 순환한다. 예를 들면, 물이 그렇지 않은가. 다양한 형태와 위치로 변이하고 움직인다. 에너지 또한 그렇다. 가깝게는 혈관을 흐르고 있는 피도 좋은 ..
3. 공백 규정 3. 5 탭 규정 탭 문자(ASCII 0x09)를 소스 코드 파일 내에 사용하지 말아야 한다. 예시 // When tabs are needed inside a string, use the ‘\t’ character. #define COPYRIGHT “Copyright (c) 2018 Barr Group.\tAll rights reserved.” // When indents are needed in the source code, align via spaces instead. void main (void) { // If not, you can encounter // all sorts // of weird and // uneven // alignment of code and comments....
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 키워드와 같은 줄에 추가 표현이 있을 때 각 키워드 뒤에 공백 한 칸이 있어야 합니다. 각 할당 연산자 =, +=, -=, *=, /=, %=, &=, |=, ^=, ~=, !=는 항상 앞과 뒤에 공백 한 칸씩 있어야 합니다. 각 이항 연산자 +, -, *, /, %, =, ==, !=, , &, |, ^, &&, ||는 항상 앞과 뒤에 공백 한 칸씩 있어야 합니다. 각 단항 연산자 +, -, ++, --, !, ~는 피연산자와 공백 없이 붙어 있어야 합니다. 포인터 연산자 * 및 &는 선언문 내에서는 앞뒤로 공백이 있어야하지만, 선언문이 아닌 경우 피연산자와 공백없이 붙어 있어야 합니다. 삼항 연산자인 ? 와 :..