Unix/Linux/Mac,  컴퓨터와 인터넷

C Indent style

오늘 KIDS BBS(kids.kornet.net)에서 C Indent style 이야기가 나와서 내가 한 마디 했는데…

협업 개발 시, 동료들에게 짜증을 주는 인간이 되지 않으려면 최소한 indentation은 지켜야 할 것 아니냐. 남이 잘못 해놓은 indentation이나 공백 지정을 고치고 있노라면 내가 왜 이런 비생산적인 일에 노력을 경주해야 하나 싶다.

제발 유명한 스타일을 쓰잔 말이다.(아래 링크 참고)

C 소스 코드 분석해서 인덴테이션을 맞춰주는 프로그램을 짤 능력이 안 되면 GNU indent를 쓰면 된다. 다만, GNU indent를 쓰면 모든 스타일을 커스터마이즈할 수 있긴해도 사실상 귀찮아서 GNU 스타일 아니면 K&R 스타일 밖에 못 쓰게 된다.

K&R 스타일이 컴팩트해서 좋은데, 최근 몇 년 간 GNU 스타일에 맞춰서 작업을 해왔던 터라 습관적으로 GNU 스타일로 코딩하게 된다. emacs를 쓰다보니 찰떡궁합이긴 한데, 컴팩트한 면을 보자면 GNU 스타일은 길게 늘여쓰는 거라서 비효율적이다. 공백이나 {와 같은 프로그램에 관련없는 내용이 여러 줄을 잡아먹는다.

indent style로 검색해보세요. 몇가지 없습니다.
http://en.wikipedia.org/wiki/Indent_style

GNU, K&R, BSD, Whitesmith, Stroustrup, Ellemtel, Linux, Python, JAVA 등등
그 중에서도 앞 4가지가 유명하고 널리 쓰입니다. 나머지는 특정 언어나
상황에서만 쓰이죠.

편하게 쓰려면 GNU indent 한 번 돌려서 나오는 걸로 쓰면 됩니다.
indent test.c
또는
indent -kr test.c

개인적으로는 GNU 스타일보다는 K&R 스타일 선호합니다.
GNU indent가 지원하지 않지만 BSD 스타일도 괜찮은 듯…

vi 쓰면 K&R이 좀 더 잘 맞고, emacs 쓰면 GNU가 좀 더 잘 맞고 그런 건
있습니다만…

댓글 4개

  • dawnsea

    저는 울트라에디터;; 리눅스 뭐던 삼바, NFS 등등 끝끝내 울트라까지 끌여오곤 하지요.

    그런데 살다보니 코딩 스타일 문제에 있어서는 어느 조직이나 통일을 강요할 수는 없다고 생각합니다.

    “이게 더 좋으니 이걸 써라, 학교때 뭐 배웠냐” 라고는 하지만.

    단 한 번도 통일된 적이 없네요 ㅠ.ㅠ
    오히려 SI업무쪽이 설계서 같은거가 명확해서 말도 안 되는 암호스타일의 파일명/변수명을 사용하면서도 잘 지켜지는 듯..

    그냥 사람들의 현실을 인지하고 최소한의 룰만 지키자고 하며 사는 것이 건강에도 좋을 것 같습니다.

    (사실 제가 야메로 이 업계에 뛰어 들어서 야메로 짜서 그렇습니다 -_-)

    * * *

    어쩌다 보니 case 가 긴 스윗치 문에 있어서..
    각 케이스를 별별 사람이 하나씩 다 건드려놨는데
    케이스마다 탭이 다 다른 거여요. 중첩 스윗치도 있는데;;;

    이럴 때는 참자 해도 승질나긴 하더군요 ㅠ.ㅠ

답글 남기기