void (*MainLoop)()=StartInit;

while(1){
 if(PeekMessage(&msg,(HWND)NULL,0,0,PM_REMOVE)){
  if(msg.message == WM_QUIT) break;
  TranslateMessage(&msg);
  DispatchMessage(&msg);
 }else{
  MainLoop();
 }
}

というふうにループ構造を作って,

void StartInit()
{
   printf("はじめ\n");
   MainLoop=SecandInit;
}

というふうにしているのですが、危険でしょうか?