strsep 으로 토큰을 나누는 메크로를 만들고싶습니다

gkgh의 이미지

 
  #define paser(x){\
     cPtr = strsep(&stringPtr,",");\
     strcpy(StrArrPtr,stingPtr);\
     StrArrPtr = StrArrPtr + 1;\
     printf("%s",x);}

를 사용해서 토큰을 나눠볼려고했는데 맘처럼 안나눠지네요

   Struct logDB logarry[Max]
   for(icount = 0; icount < logcount ;icount++)
   {
        fgets(string,sizeof(string),stream);
        if (string == NULL){
            break;
        }
        arryPtr = logarry[icount].code;
    // srting token
        StringPtr = string;
 
       for(inum = 0 ;  inum< Logcount ; inum ++){
            paser(logarry[icount].code);
 
            printf("%s",logarry[icount].code);

이런식으로 짜 놓은 상태인데
log 구조체에 여러 DB들을 각각각각 code 부분에 토큰 한개 다른 부분들에 토큰들을 한개씩 넣고 싶어서
짜 놓은 겁니다.. 코드상에서 이상한점이나 문제점좀 찾아주세요..
저 메크로를 풀어서 사용하면 잘만되는데 define 으로 만들어 놓는 과정에서 참힘드네요...
코드 안에서 잘 돌아가던 코드는

 
         strcpy(logarry[icount].code,cptr);
         cptr = strsep(&StringPtr,",");
 
         strcpy(logarry[icount].name,cPtr);
         cPtr = strsep(&StringPtr,",");

입니다.. c언어를 공부한지 얼마 되지않아서 루프를 돌리다가 실패를해서 일일이 하나하나
저장하는 위치를 적었지만 이번에는 배열포인터 + 1을 하면 포인터크기만큼 그 뒤에 자리 잡게되는걸
이용해볼려고했지만 맘처럼 쉽게 되지않네요

조언 부탁드립니다