내장 기능
이 섹션에서는 이전 글에서 설명한 것보다 덜 기본적인 언어 구성을 설명합니다. 이들은 stdlib.fc에 정의될 수 있지만 그렇게 하면 FunC 최적화 프로그램의 여지가 줄어들게 됩니다.
예외 발생
예외는 조건부 기본 요소인 throw_if
와 throw_unless
, 그리고 무조건적인 throw
로 발생시킬 수 있습니다. 첫 번째 인자는 에러 코드 이고, 두 번째는 조건입니다(throw
는 인자가 하나만 있음). 이러한 기본 요소들은 매개변수화된 버전인 throw_arg_if
, throw_arg_unless
, throw_arg
를 가집니다. 첫 번째 인자는 모든 타입의 예외 매개변수이고, 두 번째는 에러 코드, 세 번째는 조건입니다(throw_arg
는 인자가 두 개만 있음).
불리언
true
는-1
의 별칭false
는0
의 별칭
변수 덤프
~dump
함수를 사용하여 디버그 로그에 변수를 덤프할 수 있습니다.
문자열 덤프
~strdump
함수를 사용하여 디버그 로그에 문자열을 덤프할 수 있습니다.
정수 연산
muldiv
는 곱하기-나누기 연산입니다. 중간 결과는 513비트 정수에 저장되므로, 실제 결과가 257비트 정수에 맞는다면 오버플로우가 발생하지 않습니다.divmod
는 두 개의 숫자를 매개변수로 받아 나눗셈의 몫과 나머지를 제공하는 연산입니다.