См. статью, там основные способы описаны. Хотя к C в чистом виде это никакого отношения не имеет. А библиотека C способов переключения стека не имеет (можно сделать char v[10000] и потом setjmp, но в таком случае переполнение стека никто не контролирует, например, хотя аппаратура может и позволять). Ссылка:
http://www.evanjon …oftware/threading.html