ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [42경산] 3기 1차 라피신 회고 - norminette 문서 핵심 내용 요약
    Linux Shell 2025. 3. 3. 17:18

    42과정의 코드 컨벤션 또는 format 규약인 normiette를 지킬 때,

    인지하고 있어야 할 꼭 필요한 내용만 요약해 본다.

     

    1. 명명

    - 구조체 이름: s_
    - 전역 변수 이름: g_
    - 변수/함수명: 소문자, 숫자, '_' (Unix Case)
    - 파일/디렉터리: 소문자, 숫자, '_' (Unix Case)
    - 들여쓰기는 네 칸 크기의 탭 사용
    - 줄 너비는 최대 80열 (주석, 탭 공백 수 포함)
    - 함수는 최대 25줄
    - for, do ... while, 삼항 연산자 금지
    - 상수(const) 및 정적(static)이 아닌 전역 변수 선언은 금지
    - 파일은 컴파일이 가능


    2. 서식

    - 들여쓰기는 네 칸 크기의 탭 사용
    - 각 함수는 함수 자체의 중괄호를 제외하고 최대 25줄
    - 각 함수는 줄 바꿈으로 구분
    - 모든 주석과 전체러기 명령은 함수 바로 위에 존재할 것
    - 한 줄에 한 명령만이 존재
    - 두 개의 연속된 공백이 있을 수 없음
    - 모든 중괄호나 제어 구조 뒤에는 줄바꿈으로 시작
    - 모든 콤마와 세미콜론 뒤에는 공백 문자가 붙음 (줄끝 제외)
    - 각 C 키워드 뒤에는 공백이 있어야 함 (자료형 키워드, sizeof 제외)
    - 한 줄에 한 개의 변수 선언만이 가능
    - 선언과 초기화는 같은 줄에서 작성될 수 없음
    - 선언문은 함수의 처음에 존재
    - 변수 선언문과 이후 함수 사이에는 빈 줄이 존재하고, 다른 빈 줄은 함수 내에서에서 불가
    - 함수, 선언문, 제어 구조 다음에 오는 중괄호 앞 뒤에는 줄바꿈이 존재

     

    3. 함수

    - 한 함수에는 최대 4개의 명명된 매개변수 포함
    - 각 함수에서 변수 선언은 최대 5개
    - 인자를 받지 않는 함수는 "void"라는 단어를 인자로 명시적 프로토타이핑
    - 함수의 리턴은 괄호 사이에 있어야 함
    - 각 함수의 리턴 자료형과 함수 이름 사이에는 한 번의 탭 들여쓰기

     

    4. 자료형, 구제체, 열거형(enum)과 공용체(union)

    - 구조체, 열거형, 공용체를 선언 할 때는 탭 들여쓰기
    - 구조체, 열거형, 공용체의 변수를 선언할 때에는 자료형 안에 공백 문자 하나 포함
    - 구조체, 열거형, 공용체를 typeof와 함께 선언할 때에는 모든 들여쓰기 규칙이 적용
    - typeof 이름은 탭이 앞에 있어야만 한다.
    - 모든 구조체의 이름은 해당 스코프의 같은 열에 들여쓰기 해야만 한다.
    - '.c' 파일 내에서 구조체를 선언할 수 없다.

     

    5. 헤더

    - 헤더파일에서 허용되는 것들: 헤더 인클루드(시스템 헤더 또는 유저 헤더), 선언문, defines, 프로토타입과 매크로
    - 모든 인클루드는 파일의 시작에 작성
    - C  파일을 포함할 수 없음
    - 헤더 파일은 중복 인클루드를 방지
    - 사용하지 않은 헤더의 인클루드는 금지


    6. 42 헤더

    - 모든 `.c` 및 `.h` 파일은 즉시 표준 42 헤더로 시작 (클러스터 컴퓨터에서 vim: Stdheader 또는 F1)
    - 42 헤더에는 로그인과 이메일이 포함된 작성자, 생성일, 로그인 및 마지막 업데이트 날짜를 포함한 여러 최신 정보가 포함


    7. 매크로와 전처리기

    - 매크로 상수 (또는 '#define')는 리터럴이나 상숫값에만 사용 가능
    - Norm을 우회하거나 코드 가독성을 낮추는 모든 `#define`은 금지
    - 여러 줄에 걸친 매크로는 금지
    - 매크로 이름은 모두 대문자

     

    8. 금지사항

    - 금지 구문: for, do...while, switch, case, goto
    - 삼항연산자: 'i = argc > 5 ? 0 : 1'
    - VLA (가변 길이 배열)
    - 자료형을 명시하지 않은 변수 선언

     

    9. 주석

    - 주석은 함수 내부에서 불가
    - 주석은 영어이며 유용해야 함

     

    10. 파일

    - '.c' 파일을 include 할 수 없음
    - 하나의 '.c' 파일에 함수를 5개보다 많이 정의할 수 없음

     

    11. makefile

    - Makefile은 Norm에서 확인하지 않음 (평가 중에 알아서 확인)
    - Makefile이 리링크(relink)되면, 프로젝트는 작동하지 않는 것으로 간주
    - 다음 규칙은 필수적임: $(name), clean, fclean, re and all
    - 컴파일시 모든 소스파일들은 Makefile에 명시

Designed by Tistory.