Bagikan melalui


Definisi Fungsi C

Definisi fungsi menentukan nama fungsi, jenis dan jumlah parameter yang diperkirakan akan diterima, dan jenis pengembaliannya. Definisi fungsi juga mencakup isi fungsi dengan deklarasi variabel lokalnya, dan pernyataan yang menentukan apa yang dilakukan fungsi.

Sintaks

translation-unit:
external-declaration
translation-unit external-declaration

external-declaration: /* Hanya diperbolehkan pada lingkup eksternal (file) */
function-definition
declaration

function-definition:
declaration-specifiersoptattribute-seqoptdeclaratordeclaration-listoptcompound-statement

/* attribute-seq adalah khusus untuk Microsoft */

Parameter prototipe adalah:

declaration-specifiers:
storage-class-specifierdeclaration-specifiersopt
type-specifierdeclaration-specifiersopt
type-qualifierdeclaration-specifiersopt

declaration-list:
declaration
declaration-list declaration

declarator:
pointeroptdirect-declarator

direct-declarator: /* Sebuah deklarator fungsi */
direct-declarator(parameter-type-list) /* Deklarator gaya baru */
direct-declarator(identifier-listopt) /* Deklarator gaya usang */

Daftar parameter dalam definisi menggunakan sintaksis ini:

parameter-type-list: /* Daftar parameter */
parameter-list
parameter-list , ...

parameter-list:
parameter-declaration
parameter-list , parameter-declaration

parameter-declaration:
declaration-specifiers declarator
declaration-specifiersabstract-declaratoropt

Daftar parameter dalam definisi fungsi bergaya-usang menggunakan sintaksis ini:

identifier-list: /* Digunakan dalam definisi dan deklarasi fungsi gaya usang */
identifier
identifier-list , identifier

Sintaksis untuk isi fungsi adalah:

compound-statement:
{declaration-listoptstatement-listopt}

Satu-satunya penentu kelas penyimpanan yang dapat memodifikasi deklarasi fungsi adalah extern dan static. Penentu extern menandakan bahwa fungsi dapat direferensikan dari file lain; yaitu, nama fungsi diekspor ke penaut. Penentu static menandakan bahwa fungsi tidak dapat direferensikan dari file lain; yaitu, nama tidak diekspor oleh linker. Jika tidak ada kelas penyimpanan yang muncul dalam definisi fungsi, extern yang diasumsikan. Dalam kasus apa pun, fungsi selalu terlihat dari titik definisi ke akhir file.

declaration-specifiers Opsional dan wajib declarator bersama-sama menentukan jenis dan nama pengembalian fungsi. declarator adalah kombinasi dari pengidentifikasi yang memberi nama fungsi dan tanda kurung mengikuti nama fungsi. Nonterminal opsional attribute-seq adalah fitur khusus Microsoft yang ditentukan dalam Atribut Fungsi.

direct-declarator (dalam declarator sintaks) menentukan nama fungsi yang ditentukan dan pengidentifikasi parameternya. direct-declarator Jika menyertakan parameter-type-list, daftar menentukan jenis semua parameter. Deklarator tersebut juga berfungsi sebagai prototipe fungsi untuk panggilan selanjutnya ke fungsi.

declaration dalam declaration-list definisi fungsi tidak boleh berisi storage-class-specifier selain register. Dalam type-specifier sintaksis hanya dapat dihilangkan declaration-specifiers jika register kelas penyimpanan ditentukan untuk nilai jenis int .

compound-statement adalah isi fungsi yang berisi deklarasi variabel lokal, referensi ke item yang dideklarasikan secara eksternal, dan pernyataan.

Bagian Atribut Fungsi, Kelas Penyimpanan, Jenis Pengembalian, Parameter, dan Isi Fungsi menjelaskan komponen definisi fungsi secara detail.

Lihat juga

Fungsi