Naked 함수

Microsoft 전용

naked 저장소 클래스 특성은 C 언어에는 Microsoft 고유의 확장입니다.함수 선언에 naked 저장소 클래스 특성, 컴파일러에서 프롤로그 및 에필로그 코드 없이 코드를 생성 합니다.이 기능을 사용 하면 인라인 어셈블러 코드를 사용 하 여 자신의 프롤로그/에필로그 코드 시퀀스를 작성할 수 있습니다.Naked 함수는 가상 장치 드라이버 작성에 특히 유용 합니다.

때문에 naked 특성의 함수 정의에 관련이 있으며 형식 한정자, naked 함수 사용 하 여 확장 된 특성 구문에서 설명한 확장 된 저장소 클래스 특성.

다음 예제를 사용 하는 함수 정의 naked 특성:

__declspec( naked ) int func( formal_parameters )
{
   /* Function body */
}

나 또한:

#define Naked   __declspec( naked )

Naked int func( formal_parameters )
{
   /* Function body */
}

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 특정 끝

참고 항목

참조

C 함수 정의