2009년 10월 9일 금요일

if / else / endif

스택을 하위 메모리에서 상위 메모리 순서로 쓰는 경우 (OS_STK_GROWTH == 0)                      
OS_STK TaskStack[TASK_STACK_SIZE];                                                            
OSTaskCreate(task, pdata, &TaskStack[0], prio);                                               
                                                                                              
스택을 상위 메모리에서 하위 메모리 순서로 쓰는 경우 (OS_STK_GROWTH == 1)                      
OS_STK TaskStack[TASK_STACK_SIZE];                                                            
OSTaskCreate(task, pdata, &TaskStack[TASK_STACK_SIZE-1], prio);                               
                                                                                              
이렇게 쓰면 된다.                                                                             
                                                                                              
                                                                                              
하지만 이런 경우 그때 그때 마다 바꿔서 코딩해줘야 함으로 코드의 이식성이 좋다고 말할 수는 없다.
                                                                                              
이런 경우 if / else / endif 문을 쓰면 한결 좋아진다.                                          
                                                                                              
                                                                                              
OS_STK TaskStack[TASK_STACK_SIZE];                                                            
                                                                                              
#if OS_STK_GROWTH == 0                                                                        
 OSTaskCreate(task, pdata, &TaskStack[0], prio);            
#else                                                    
 OSTaskCreate(task, pdata, &TaskStack[TASK_STACK_SIZE-1], prio);

#endif                                                        
                                                                                               
                                                                                               
                                                                                              
이런식으로.                                      

댓글 없음:

댓글 쓰기