Share via


Fungsi Naked

Khusus Microsoft

Atribut kelas penyimpanan naked adalah ekstensi khusus Microsoft untuk bahasa C. Untuk fungsi yang dideklarasikan dengan atribut kelas penyimpanan naked, kompilator menghasilkan kode tanpa kode prolog dan epilog. Anda dapat menggunakan fitur ini untuk menulis barisan kode prolog/epilog Anda sendiri dengan menggunakan kode perakit sebaris. Fungsi naked sangat berguna dalam menulis driver perangkat virtual.

Karena atribut naked hanya relevan dengan definisi fungsi dan bukan merupakan pemodifikasi tipe, fungsi naked menggunakan sintaks atribut yang diperluas, yang dijelaskan dalam Atribut Kelas Penyimpanan yang Diperluas.

Contoh berikut mendefinisikan fungsi dengan atribut naked :

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

Atau, sebagai alternatif:

#define Naked   __declspec( naked )

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

Atribut naked hanya memengaruhi sifat pembuatan kode kompilator untuk barisan prolog dan epilog fungsi. Atribut tersebut tidak memengaruhi kode yang dihasilkan untuk memanggil fungsi tersebut. Dengan demikian, atribut naked tidak dianggap sebagai bagian dari tipe fungsi, dan penunjuk fungsi tidak dapat memiliki atribut naked. Selain itu, atribut naked tidak dapat diaplikasikan ke definisi data. Misalnya, kode berikut menghasilkan kesalahan:

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

Atribut naked hanya relevan dengan definisi fungsi dan tidak dapat ditentukan dalam prototipe fungsi. Deklarasi berikut menghasilkan kesalahan kompilator:

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

AKHIR Khusus Microsoft

Lihat juga

Definisi Fungsi C