C에서 실제로 사용될 함수를 만들기 이전에 땜빵(?)으로 아무기능도 수행하지 않는 더미펑션 만들때 있잖아요~ 근데 이런 더미펑션이 많을 때 실제 사용될 함수가 완성되면 바꿔주는게 꽤~ 귀찮더라구요~ ㅡ,.ㅡ;; 더미펑션을 조금 쉽게 관리할 수 있는 노하우 없을까요???
//todo 를 이용하시면 편합니다.
There is no spoon. Neo from the Matrix 1999.
dummy function들 작성시
#define _DUMMY_FUNC ... ... #ifdef _DUMMY_FUNC void _dummy_func_1(void) { .... } #else vodi _real_func_1(void) { ... } #endif
나중에, 전체 코드에서 들어내기도 편하고.
단점은 너무 많아지면 코드가 매우 지저분 해지겠죠.
SourceInsight #define문들을 미리 설정해 놓으면 해당 부분은 자동으로 다른 color처리가 되어, 가독성이 높일수 있죠. vim에서 이 기능을 어떻게 쓸수 있는지 아시는 분, tip부탁 드립니다.
만약 큰 프로젝트가 크고, dummy function 혹은 stub function을 사용할 경우가 많아지는 경우에는
autogenerate하게 해줄수 있도록 하는게 좋은것 같습니다. 처음에 만드는게 귀찮긴 하지만 제대로 한번만 만들어 놓으면
나중에는 편하게 사용할수 있습니다.
예를들면:
dummydefine.def 이라는 파일에
[foo1] ARGS = char*, int, short RETURN_TYPE = int RETURN = return 0
[foo2] ARGS = void RETURN_TYPE = int RETURN = return -1
[bar1] ARGS = unsigned int* RETURN_TYPE = void * RETURN = return NULL
---
뭐 이런 비슷한식으로 dummy function들을 정의내려주는 파일을 두고 compile시에
dummy들을 모두 묶은 header파일과, dummy function source코드를 자동 생성하게 해줘서
#ifdef #else가 source code를 뒤덮는 경우를 피하고 있습니다.
물론 여기서 더 확장해서 사용할수도 있겠구요.
gcc 입니다. . . .
[bushi@rose dummy]$ cat dummy.h #define DUMMY(_type, _name, _content, _args...) \ _type _name(_arg) \ { \ printf("ToDo: '%s %s(%s)' at '%s:%d'\n", \ #_type, #_name, #_args, __FILE__, __LINE__); \ _content; \ } [bushi@rose dummy]$ [bushi@rose dummy]$ cat foobar.c #include <stdio.h> #include "dummy.h" void foo(int a, int b) { printf("I'm '%s(%d:%d)'\n", __func__, a, b); } DUMMY(static int, bar, printf("(sorry)\n"); return 0, int a, int b) int main() { foo(1, 2); bar(3, 4); return 0; } [bushi@rose dummy]$ [bushi@rose dummy]$ gcc -s -o foobar foobar.c -Wall [bushi@rose dummy]$ ./foobar I'm 'foo(1:2)' ToDo: 'static int bar(int a, int b)' at 'foobar.c:10' (sorry) [bushi@rose dummy]$
OTL
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
eclipse-cdt 를 사용하신다면...
//todo 를 이용하시면 편합니다.
There is no spoon. Neo from the Matrix 1999.
There is no spoon. Neo from the Matrix 1999.
preprocessor 는 어떨까요?
dummy function들 작성시
이런식으로..#if, #ifdef, #else, #endif 등등의 preprocessor를 이용하는건 어떨까요? compile시에도 #define 하나로 처리 가능하고,
나중에, 전체 코드에서 들어내기도 편하고.
단점은 너무 많아지면 코드가 매우 지저분 해지겠죠.
SourceInsight #define문들을 미리 설정해 놓으면 해당 부분은 자동으로 다른 color처리가 되어, 가독성이 높일수 있죠.
vim에서 이 기능을 어떻게 쓸수 있는지 아시는 분, tip부탁 드립니다.
만약 큰 프로젝트가
만약 큰 프로젝트가 크고, dummy function 혹은 stub function을 사용할 경우가 많아지는 경우에는
autogenerate하게 해줄수 있도록 하는게 좋은것 같습니다. 처음에 만드는게 귀찮긴 하지만 제대로 한번만 만들어 놓으면
나중에는 편하게 사용할수 있습니다.
예를들면:
dummydefine.def 이라는 파일에
[foo1]
ARGS = char*, int, short
RETURN_TYPE = int
RETURN = return 0
[foo2]
ARGS = void
RETURN_TYPE = int
RETURN = return -1
[bar1]
ARGS = unsigned int*
RETURN_TYPE = void *
RETURN = return NULL
---
뭐 이런 비슷한식으로 dummy function들을 정의내려주는 파일을 두고 compile시에
dummy들을 모두 묶은 header파일과, dummy function source코드를 자동 생성하게 해줘서
#ifdef #else가 source code를 뒤덮는 경우를 피하고 있습니다.
물론 여기서 더 확장해서 사용할수도 있겠구요.
gcc 입니다.[bushi@rose
gcc 입니다.
.
.
.
OTL
댓글 달기