на сишечке можно реализовать try-catch с помощью unwind. Но беда в том, что при входе в этот блок тебе надо подготовить точку выхода "в случае эксепшна"
но насколько мне известно, zero-cost исключения это то единственное, чего на си нельзя сделать из того, что делается на плюсах. Все остальное можно сымитировать.