138
2014-03-07 23:32:56
5
저는 핑크마카롱님이 말씀하신 것과 좀 다른 면에서 말씀드릴께요.
코딩 스타일이라고 하면, 회사 같은 데서 말하는 코딩 스타일 가이드라인 말씀하시는 건가요? 일단 학부생이라고 했을때, 저는 이것저것 해보라고 말씀드리고 싶네요. 헝가리안이든, 변수에 언더바를 넣든 말든, 변수를 카멜케이스로 하든 전 별로 크게 의미가 없다고 생각합니다. 그런 건 협업 할 때나 하는 거지 혼자 프로그래밍 하는데 굳이 그런 빡센 룰에 얽매일 필요는 없어요. 사실 사람마다 관점이 다르고 이건 취향의 문제거든요.
define? 써도 됩니다. 그것도 취향 문제죠. const 변수 쓰면 타입에 더 안전하다는 장점이 있습니다만 크리티컬한 문제가 아니에요. 적절히 쓰세요.
struct에 typedef? 그것 또한 자기 맘입니다. typedef 안한다고 해서 문제가 생기는 건 아니에요.
제가 볼 때는 주석이 너무 많습니다. 굳이 이렇게 빡세게 주석을 써야 할지 좀 의문이 드네요. 주석이 있으면 좋지만, 주석이 필요 없게 코딩하는 것이 좋습니다. 필요한 부분에 적절히 주석을 다는 게 좋죠.
제가 볼 때는 변수 이름 잘 짓는 거랑 프로그램 설계를 다지는 것이 더 중요해 보이네요. 제 생각을 적어 보자면:
** double fuel_efficiency로 변수 이름으로 fuel effiency가 있고 구조체 이름도 fuel_efficency가 있네요. 이거 좀 헷갈리죠?
** 소스를 보니 연비 계산하는 프로그램이고, 텍스트 파일에서 자료를 받아 처리하는 프로그램으로 보입니다.
핵심 로직은 연비 계산이죠. 그런데 소스를 보면 쓸데없이 텍스트 파일 입출력에 더 신경을 쓰고 있어요. txt_check이나 receive_source는 왜 저렇게 복잡하게 있어야 하나요? 대략 예상을 해 보니 텍스트 파일에 한 줄에 하나씩 출발지점, 도착지점, 사용 연료의 세 파라미터가 들어가네요.
입력값은 누가 딱 저렇게 정해준 건가요? 바꿀 수 없는 상황이라면 이렇게 작성하는 게 맞지만요.. 만약 자기가 마음껏 정해줄 수 있었다면 전 아래처럼 했을 겁니다.
- 텍스트 파일 내에 한 줄로 간단하게 공백 하나로 구분하는 식으로 입력값을 구성했을 겁니다 이렇게요.
1234 1274 10
- 그래서 세 개의 정수형이면
fscanf(fp, "%d %d %d ", &st, %ed, $fuel);
이 정도로 자료 입력 부분을 간결하게 구성했을 겁니다. 핵심은 연비 구하는 코드이니 그것만 잘 보이면 될 겁니다. 다른 건 이정도 CLI 프로그램서 낭빕니다.
- 입력이 텍스트 세줄로 가정했는데, N줄의 입력에 대해서는 처리할 수 없을까요? 저는 충분히 가능하리라 생각하는데요