C 언어는 함수 외에도 실행 흐름을 무조건 변경하는 방법을 제공하는데, 이는 일반적인 실행 흐름과는 다른 예외나 에러 조건을 처리하는 데 주로 사용된다.
• exit, _Exit, quick_exit, abort는 프로그램 실행을 종료한다(8.7절).
• goto는 함수 본문 안에서 실행 흐름을 변경한다(13.2.2절, 14.5절).
• setjmp와 longjmp는 호출한 곳으로 무조건 리턴한다.
• 실행 환경에서 특정한 이벤트가 발생하거나 raise 함수를 호출하면 시그널 핸들러(signal handler)란 특수 함수에 의해 제어 흐름을 변경하라는 시그널(signal)(신호)이 발생한다.