Aracılığıyla paylaş


Naked İşlevleri

Microsoft'a Özgü

naked depolama sınıfı özniteliği, C diline yönelik Microsoft'a özgü bir uzantıdır. naked depolama sınıfı özniteliğiyle bildirilen işlevler için derleyici giriş ve sonuç kodu olmadan kod oluşturur. Satır içi derleyici kodunu kullanarak kendi giriş/sonuç kodu dizilerinizi yazmak için bu özelliği kullanabilirsiniz. Çıplak işlevler, özellikle sanal cihaz sürücülerinin yazılmasında yararlıdır.

naked Öznitelik yalnızca bir işlevin tanımıyla ilgili olduğundan ve tür değiştirici olmadığından, çıplak işlevler Genişletilmiş Depolama Sınıfı Öznitelikleri'nde açıklanan genişletilmiş öznitelik söz dizimini kullanır.

Aşağıdaki örnekte, naked özniteliğine sahip bir işlev tanımlanmaktadır:

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

Veya alternatif olarak:

#define Naked   __declspec( naked )

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

naked özniteliği, yalnızca işlevin giriş ve sonuç dizileri için derleyicinin kod oluşturma yapısını etkiler. Bu tür işlevleri çağırmak için oluşturulan kodu etkilemez. Bu nedenle, naked özniteliği işlev türünün bir parçası olarak kabul edilmez ve işlev işaretçileri naked özniteliğine sahip olamaz. Ayrıca, naked özniteliği veri tanımına uygulanamaz. Örneğin, aşağıdaki kod hatalar oluşturur:

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

naked özniteliği, yalnızca işlevin tanımıyla ilgilidir ve işlevin prototipinde belirtilemez. Aşağıdaki 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.

C İşlev Tanımları