kernel.org는 Linux kernel소스코드를 배포하는 웹사이트다.
이 사이트의 Documentation을 보면 많은 자료에 대한 이론 및 설명을 볼 수 있다.
https://www.kernel.org/doc/html/latest/
kernel.org에서 권장하는 kernel coding style이 있다.
https://www.kernel.org/doc/html/v4.10/process/coding-style.html
리눅스의 핵심인 Linux kernel에 대한 코딩 스타일에 대해서 서술되어 있기 때문에 따를 이유가 충분하다.
물론 개인, 기업 등 상황에 따라 주관적인 코딩 스타일을 가질 수 있기 때문에 항상 옳다고는 할 수 없으나,
적어도 Linux programming에 있어서 선호된다고 생각한다.
*들여 쓰기
8자 들여 쓰기 사용
들여 쓰기를 하느 이유는 제어블록이 시작하고 끝나는 위치를 명확히 하기 위해서 사용함.
*한줄에 여러 문장 쓰지 않기
*괄호
기술적인 근거는 없지만 kernighan 과 Ritchie가 선호하는 마지막줄에 중괄호 열기를 기본으로 한다.
if(num == 1){
printf("1\n");
do_function();
}else if(num == 2){
printf("2\n");
do_function();
}else{
printf("NULL\n");
}
switch(num){
case 1:
return 1;
case 2:
return 2;
case 3:
return 3;
default:
return NULL;
}
조건문의 한 분기만 명령문이 단일로 존재 할 경우 중괄호를 모두 사용해야 하지만, 모든 분기가 단일 명령문일 경우 중괄호를 사용하지 않는다.
//모두 단일 명령문
if(check_input() == 0)
do_function();
else
do_function();
//일부 단일 명령문
if(feel()){
do_function;
check_my_feel();
}else{
go_to_sleep();
}
*띄어쓰기(공백)
콤마(,) 뒤는 띄어쓰기
cat, dog, apple, file
괄호 안의 양쪽 끝을 띄어쓰지 않기
size = sizeof(struct file);
포인터는 변수 또는 함수 이름에 붙여서 사용
char *input_string;
char *find_string(char *ptr);
*주석
코드가 수행하는 방식을 적지 말고, 함수 본문에 주석을 넣지 말아야 함. 기능만을 적어 둔다.
*함수 리턴 값
함수의 이름이 action 이거나 imperative command 일 경우 오류코드 정수를 리턴.
함수의 이름이 참과 거짓을 나타내면, boolean 값을 리턴.
'Programming' 카테고리의 다른 글
프로그래밍 경험 및 객체지향 기술 능력에 대하여 (0) | 2020.07.23 |
---|---|
coding 기초(실수 하는 것들) (0) | 2020.04.28 |