컴파일러 내장 함수
대부분의 함수 라이브러리에 포함 되어 있지만 일부 기능이 빌드됩니다 (즉, 내장) 컴파일러를 합니다.이를 내장 함수 또는 내장으로 라고 합니다.
설명
내장 함수인 경우 해당 함수의 코드가 일반적으로 삽입 된 인라인 함수 호출의 오버 헤드를 방지 하 고 해당 함수를 내보내야 하는 고효율 시스템 지침입니다.몇 가지 최적화를 사용할 수 있도록 최적화 프로그램이 얼마나 많은 내장 동작에 대 한 기본 지식이 있기 때문에 내장 해당 인라인 어셈블리 보다 더 빠른 경우가 없는 사용 가능한 인라인 어셈블리를 사용 하는 경우.또한 최적화 프로그램의 내장을 다르게 확장, 버퍼 다르게 정렬 하거나 기타 조정 컨텍스트와 호출의 인수에 따라 수 있습니다.
내장 함수를 사용 하는 Visual C++에서 사용할 수 있는 내장 다른 컴파일러로 컴파일된 코드와 일부 대상 아키텍처에 사용할 수 있는 일부 내장을 모든 아키텍처에 대해 사용할 수 없는 경우 사용할 수 없습니다 때문에 이식성을 코드를 영향을 줍니다.그러나 내장 인라인 어셈블리 보다 일반적으로 더 휴대용 됩니다.내장 인라인 어셈블리 지원 되지 않는 64 비트 아키텍처에서 필요 합니다.
일부 내장, 같은 __assume 및 __ReadWriteBarrier, 컴파일러는 최적화 프로그램의 동작에 영향을 주는 정보를 제공 합니다.
일부 내장 내장으로만 사용할 수 있으며 일부 함수 및 내장 구현을 사용할 수 있습니다.내장 구현만 특정 기능을 사용할 수 있는지 여부에 따라 두 가지 방법 중 하나를 사용 하도록 컴파일러에 지시할 수 있습니다 또는 모든 내장 함수를 사용 합니다.The first way is to use #pragma intrinsic(intrinsic-function-name-list).내장 단일 또는 여러 내장 쉼표로 구분 하 여 지정 하는 pragma는 사용할 수 있습니다.두 번째 사용 하는 것은 /Oi (내장 함수 만들기) 컴파일러 옵션은 주어진된 플랫폼에서 모든 내장 함수를 사용할 수 있습니다.아래 /Oi, 사용 #pragma function(intrinsic-function-name-list) 함수 호출 대신 내장 형식을 사용 하도록 합니다.설명서에는 특정 내장 된 메모 경우 루틴만 내장으로, 사용 가능한 다음 내장 구현 여부에 관계 없이 사용 됩니다 /Oi 또는 #pragma intrinsic 지정 됩니다.모든 경우에 /Oi 또는 #pragma intrinsic 허용, 하지만 하지 않는 힘, 최적화 프로그램에서는 내장 함수를 사용 합니다.최적화 프로그램이 여전히 함수를 호출할 수 있습니다.
일부 표준 C/C++ 라이브러리 함수는 내장 구현 일부 아키텍처에서 사용할 수 있습니다.CRT 함수를 호출 하는 경우 기본 구현을 23ch-23fh /Oi 명령줄에 지정 됩니다.
헤더 파일 Intrin.h, 사용할 수 있는 내장 함수 프로토타입 선언 합니다.또한 특정 Windows 헤더 매핑 컴파일러에 내장 함수를 선언 합니다.
다음 섹션에서는 다양 한 아키텍처에서 사용할 수 있는 모든 내장 함수를 나열 합니다.내장 함수를 특정 대상 프로세서에서 작동 하는 방법에 대 한 자세한 내용은 제조업체의 참조 설명서를 참조 하십시오.