Aracılığıyla paylaş


naked (C++)

Microsoft'a Özgü

Bildirilen işlevler için naked özniteliği, derleyici kod giriş ve bitiş kodu olmadan oluşturur.Satır içi assembler kod kullanarak kendi giriş/bitişin kod dizileri yazmak için bu özelliği kullanabilirsiniz.Çıplak sanal aygıt sürücüleri yazılı olarak özellikle yararlı işlevlerdir. Dikkat edin naked özniteliği, yalnızca x 86 ve ARM geçerlidir ve kullanılamaz x64.

__declspec(naked) declarator

Notlar

Çünkü naked özniteliği yalnızca bir işlev tanımı için geçerlidir ve bir tür değiştiricisi değil, çıplak işlevleri genişletilmiş öznitelik sözdizimi kullanmanız gerekir ve __declspec anahtar sözcüğü.

İşlevi ayrıca ile işaretlenmiş olsa bile derleyici çıplak özniteliğiyle işaretlenmiş bir işlev için bir satır içi işlevi üretilemiyor __forceinline anahtar sözcüğü.

Derleyici bir hata varsa sorunları naked özniteliği üye olmayan yöntem tanımının dışında bir uygulanır.

Örnekler

Bu kod ile bir işlevi tanımlar naked özniteliği:

__declspec( naked ) int func( formal_parameters ) {}

Veya alternatif olarak:

#define Naked __declspec( naked )
Naked int func( formal_parameters ) {}

naked Özniteliği yalnızca derleyicinin kod oluşturma işlev giriş ve bitiş serilerinin yapısını etkiler.Bu tür işlevleri çağırmak için oluşturulan kodu etkilemez.Bu nedenle, naked bölümü işlevin türü özniteliği dikkate alınmaz ve işlev işaretçileri olamaz naked özniteliği.Ayrıca, naked özniteliği veri tanımı için uygulanamaz.Örneğin, bu kod örneği, bir hata oluşturur:

__declspec( naked ) int i;       // Error--naked attribute not
                                 // permitted on data declarations.

naked Özniteliği işlevin tanımını ilgilidir ve işlev prototipi belirtilemez.Örneğin, bu bildirim bir derleyici hatası oluşturur:

__declspec( naked ) int func();  // Error--naked attribute not 
                                 // permitted on function declarations

END Microsoft'a Özgü

Ayrıca bkz.

Başvuru

__declspec

C++ Anahtar Sözcükleri

Çıplak İşlev Çağrıları