naked (C++)
Microsoft 전용
함수 선언에 naked 특성을 컴파일러 생성 코드 프롤로그 및 에필로그 코드 없이.이 기능을 사용 하면 인라인 어셈블러 코드를 사용 하 여 자신의 프롤로그/에필로그 코드 시퀀스를 작성할 수 있습니다.Naked 함수는 가상 장치 드라이버 작성에 특히 유용 합니다.참고 해당 naked 특성 x 86에만 유효 하며 사용할 수 없게 됩니다 x64 또는 Itanium.
__declspec(naked) declarator
설명
때문에 naked 특성의 함수 정의에 관련이 있으며 형식 한정자, naked 함수 확장된 특성 구문을 사용 해야 하는 __declspec 키워드입니다.
또한 함수 표시 됩니다 경우에 컴파일러 인라인 함수가 naked 특성으로 표시 하는 함수에 대 한를 생성할 수 없습니다의 __forceinline 키워드입니다.
경우 컴파일러 오류가 발생을 naked 특성을 적용할 비멤버 메서드의 정의에 아닌 다른.
예제
이 코드를 사용 하는 함수 정의 naked 특성:
__declspec( naked ) int func( formal_parameters ) {}
나 또한:
#define Naked __declspec( naked )
Naked int func( formal_parameters ) {}
naked 특성의 특성은 함수 프롤로그와 에필로그 시퀀스에 대 한 컴파일러의 코드 생성에 영향을 줍니다.이러한 함수를 호출 하는 생성 된 코드는 영향을 주지 않습니다.따라서는 naked 특성은 함수 형식으로 간주 되지 않습니다 및 함수 포인터를 가질 수 없습니다는 naked 특성입니다.또한, 해당 naked 데이터 정의에 특성을 적용할 수 없습니다.예를 들어,이 코드 샘플에서는 오류가 생성 됩니다.
__declspec( naked ) int i; // Error--naked attribute not
// permitted on data declarations.
naked 함수 정의에 관련 된 특성과에서 함수의 프로토타입을 지정할 수 없습니다.예를 들어,이 선언은 컴파일러 오류가 생성 됩니다.
__declspec( naked ) int func(); // Error--naked attribute not
// permitted on function declarations
Microsoft 특정 끝