noreturn 함수 수식자
noreturn 함수 수식자
프로시저가 결코 반환하지 않는다는 사실을 컴파일러에 알려주는 수식자가 noreturn이에요. 덕분에 초기화되지 않은 변수나 결과값 미설정에 대한 경고를 줄일 수 있어요.
본문
noreturn 수식자는 프로시저가 반환하지 않는다(never returns) 는 사실을 컴파일러에 알려줄 때 사용해요. 이 정보를 바탕으로 컴파일러는 초기화되지 않은 변수나 결과가 설정되지 않았다는 경고를 내지 않을 수 있어요.
아래 예시를 볼까요. 컴파일러는 함수 f에서 결과가 설정되지 않을 수 있다는 경고를 내지 않아요.
procedure do_halt; noreturn;
begin
halt(1);
end;
function f(i : integer) : integer ;
begin
if (i<0) then
do_halt
else
result:=i;
end;
do_halt가 noreturn으로 선언되어 있으니, i<0인 경로에서는 함수가 반환되지 않는다는 걸 컴파일러가 알 수 있어요. 그래서 result가 항상 설정된다고 판단하고 관련 경고를 생략해주는 거예요.
더 알아보기
- Free Pascal Reference의 프로시저·함수 수식자 섹션
- 컴파일러 경고 제어와
halt프로시저