함수 코딩 스타일에 관하여....
오랜만에 글 올리네요..
요즘 코딩스타일에 대해 생각이 좀 많은 편인데, 그 와중에 아래와 같은 스레드를 읽고 문득 드는 생각이 있어서 글 올립니다.
http://bbs.kldp.org/viewtopic.php?t=38469&highlight=if%B9%AE
임베디드 프로그래밍을 하면서 resource의 제한등 많은 제한등이 있는데, 그것 때문에 코드 최적화(저는 그냥 이렇게 부릅니다.)에 대한 이야기가 항상 나오는 것 같습니다.
그러던 와중에 위와 같은 스레드를 보고 이러한 것이 임베디드 시스템에서도 적용될까 라는 생각을 했습니다.
아직 임베디드 프로그래밍 경험이 많지 않아서 정확한 판단을 할 수 없더군요..
여러명이 작업할 경우 readability에 중점을 둔다는 것에는 공감하지만, 위 스레드에 나와 있는 것처럼 하나의 함수에 flag를 둬서 비슷한 기능을 하는 함수를 하나로 사용하는 것보다 함수를 둘로 나누는 것이 과연 효율적일까라는 의구심이 생깁니다.
만약 위처럼 하나의 함수를 쪼개면, if문이 그만큼 없어지겠지만 중복되는 코드가 많아서 오히려 더 비효율적이지 않을까요?
아직 내공이 부족한지라 위 부분에 대해 쉽게 납득이 가지 않네요.. :roll:
저도 지금까지 계속 flag를 둬서 웬만하면 비슷한 기능을 하는 함수를 하나로 만들어 사용하는 스타일로 코딩했었거든요..코드사이즈를 줄이는 의미에서요..
고수분들의 생각은 어떤지 알고 싶습니다...
날씨가 갑자기 추워지네요..감기조심하세요....^^
* 오버헤드- 함수호출(calling sequence/return s
* 오버헤드
- 함수호출(calling sequence/return sequence)
- 비교연산(비교후 분기)
무엇이 비쌀까?
*고려사항 : 불리는 회수
* 심한 경우에, 함수 없이(소위 main()에 전부 코딩)하는 경우도 있다는 얘기를 들은 적이 있다는....<== 카더라~ 얘기니 믿지 마시길..
그러나, 대체로는 의미없어 보이며, 아주 정밀성을 요구하는 제어장치 프로그램(심지어 각 머신 명령어의 클락사이클조차 고려하는)이 아닌 다음에야 대충 하면 될 것으로 보입니다. 단지, 범용에나 있고, 임베디드에는(특수한 경우라서) 있지도 않을 상황을 고려해서 비교문 엄청 사용 한다거나, 메모리 팡팡~ 때려잡아서 쓰는 라이브러리나 언어는 회피하게 되겠지요.
어차피 사람이 두고 두고 보면서 다듬어야 할 소스라면요즘 컴파일러가
어차피 사람이 두고 두고 보면서 다듬어야 할 소스라면
요즘 컴파일러가 성능이 좋아, 최적화는 잘들해주니
아무래도 readability가 제일 중요한것 같네요.
그 정도의 제한된 환경이라면 플랫폼 독립적인 코딩이 힘든 환경이 아닐까
그 정도의 제한된 환경이라면 플랫폼 독립적인 코딩이 힘든 환경이 아닐까 싶은데요. 어차피 그 플랫폼용으로 기존 코드를 수정해야하지 않을까 싶고요.
기존 코드를 수정한다면 저라면 통합함수 하나를 만들고 기존 함수명을 macro로 통합함수명 + flag 형태로 바꿔서 가능한 기존 코드 안바꾸고 추가만 해서 해결해 보려고 할 것 같습니다.
그러니까 기조는 세분화된 함수고 문제가 되는 특정환경에서만 우회적으로 해결하는게 좋지 않을까 생각합니다.
오늘 우리는 동지를 땅에 묻었습니다. 그러나 땅은 이제 우리들의 것입니다.
아직도 우리의 적은 강합니다. 그러나 우리는 그들보다 많습니다.
항상 많을 것입니다.
[quote="Anonymous"]* 심한 경우에, 함수 없이(소위 ma
예전에 학부때 제가 이런 짓을 한적이 있었져..FM modulation과 demodulation하는 code였는데, 제가 처음으로 코딩했던것이었는데, 담당조교가 실행시키는데, 이렇게 느린건 첨 본다구 하더군요..ㅋㅋ
이런 방법은 미처 생각 못했었네요..흠..macro생각을 왜 못했을까요..아ㅤㅎㅔㅎㅤㅎㅔㅎ
여러분들의 답변 감사합니다... :lol:
댓글 달기