카테고리 없음

C++/ 함수 내에 매크로 함수 정의 및 사용하기

cleitia 2020. 3. 3. 05:23
void func1() 
{
    #define update_leftmost(i) \
    { \
        const vec2_t &p  = polygon[i];                                   \
        const vec2_t &lm = polygon[iLeftMost];                           \
        if (p.x < lm.x || (p.x == lm.x && p.y < lm.y)) iLeftMost = i;    \
    }
    
    #define init_vertex(i, iPrev, iNext) \
        vertices[i].index = i;                                           \
        vertices[i].prev = &vertices[iPrev];                             \
        vertices[i].next = &vertices[iNext];                             \
        vertices[i].prev->index = iPrev;                                 \
        vertices[i].next->index = iNext;                                 \
        vertices[i].winding_value = winding_value(polygon, vertices[i]); \
        vertices[i].reflex = false;

    // initialize vertices

    init_vertex(0    , N - 1, 1);
    init_vertex(N - 1, N - 2, 0);

    update_leftmost(N - 1);

    for (int i = 1; i < N - 1; i++)
    {
        init_vertex(i, i - 1, i + 1);
        update_leftmost(i);
    }
}