For some reason I need to define some nested definition. but the pre-processor remove a part of my macro. Look at following code:
#define SINGLE_ITERATION y+=xext[++xIndex]*H[hCounter--];
#define LOOP_ITERATION  SINGLE_ITERATION  \
    SINGLE_ITERATION SINGLE_ITERATION \
    SINGLE_ITERATION SINGLE_ITERATION \
    SINGLE_ITERATION SINGLE_ITERATION \
    SINGLE_ITERATION
#define DEBUG_CODE #ifdef MEMORIZE \
    myOutput[xCounter]=y;      \
    #endif                     \
    #ifdef STORING            \
    fprintf(fid,"%f\r\n",y);  \
    #endif
#define OUT_LOP_ITERATION y=0;           \ 
                          xIndex=xCounter-HL;\
                          for(hCounter=HL_MINUS_1;hCounter>0;)
                          {LOOP_ITERATION}  \
                          SINGLE_ITERATION  
But the problem is when the MEMORIZE flag is defined. Here is the output of pre-processor created by compiler
for( xCounter=XL_MINUS_1;xCounter>=0;xCounter--)
{
y=0; 
xIndex=xCounter-HL;
for(hCounter=HL_MINUS_1;hCounter>0;)
{
    y+=xext[++xIndex]*H[hCounter--];
    y+=xext[++xIndex]*H[hCounter--];
    y+=xext[++xIndex]*H[hCounter--];
    y+=xext[++xIndex]*H[hCounter--];
    y+=xext[++xIndex]*H[hCounter--];
    y+=xext[++xIndex]*H[hCounter--];
    y+=xext[++xIndex]*H[hCounter--];
    y+=xext[++xIndex]*H[hCounter--];
    }
    y+=xext[++xIndex]*H[hCounter--];
#ifdef  
myOutput[xCounter]=y;
#endif 
#ifdef STORING 
fprintf(fid,"%f\r\n",y); 
#endif
}
which has a problem in the last part.in the :
#ifdef  
myOutput[xCounter]=y;
#endif 
#ifdef STORING 
fprintf(fid,"%f\r\n",y); 
#endif
}
which must be
#ifdef  MEMORIZE
myOutput[xCounter]=y;
#endif 
#ifdef STORING 
fprintf(fid,"%f\r\n",y); 
#endif
}
and the pre-processor omitted the MEMORIZE because it is defined currently.
Please help me to solve it.
 
     
     
    