#define COROUTINE_LOCAL(type, name)                                                        \
    if (COROUTINE_ctx.jumpLocation == 0 && !COROUTINE_ctx.looping)                         \
    {                                                                                      \
        assert(COROUTINE_ctx.numSavedLocals >= CoroutineImpl::MaxLocals,                   \
               P("Ran out of coroutine locals! Increase Coroutine::MaxLocals"));           \
        trace(P("Allocating local '" #name "' (#%hhu)"), COROUTINE_ctx.numSavedLocals);    \
        COROUTINE_localIndex = COROUTINE_ctx.numSavedLocals;                               \
        COROUTINE_ctx.savedLocals[COROUTINE_ctx.numSavedLocals++] = malloc(sizeof(type));  \
    }                                                                                      \
    else                                                                                   \
        COROUTINE_localIndex = COROUTINE_ctx.numRecoveredLocals++;                         \
    type& name = *((type*) COROUTINE_ctx.savedLocals[COROUTINE_localIndex]);



오늘로 3일째 삽질중인 코드늅인데요.


위에 type하고 name이 대체 어떤 변수 유형인거죠??


행님들 덕분에 통째로 치환되는걸 알게 되었고  완성 된 형태의 함수로 만드려고 보니까


위에 두가지 변수가 중간에 워프 뚫고 나온 것처럼 삽입 되는 풍경이더라구요.


그래서 매개 변수같은 것으로 선언을 해주거나 하려고 보니까 변수 유형이 뭔지를 모르겠어요;;


 COROUTINE_LOCAL(unsigned long, index);


이런식으로 쓰면 unsigned long index 변수가 선언되는 식인데..


아... 어디서부터 공부를 잘 못 한 걸까 ㅜ ㅜㅋ