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-specifiers
optattribute-seq
optdeclarator
declaration-list
optcompound-statement
/* attribute-seq
adalah khusus untuk Microsoft */
Parameter prototipe adalah:
declaration-specifiers
:
storage-class-specifier
declaration-specifiers
opt
type-specifier
declaration-specifiers
opt
type-qualifier
declaration-specifiers
opt
declaration-list
:
declaration
declaration-list
declaration
declarator
:
pointer
optdirect-declarator
direct-declarator
: /* Sebuah deklarator fungsi */
direct-declarator
(
parameter-type-list
)
/* Deklarator gaya baru */
direct-declarator
(
identifier-list
opt)
/* 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-specifiers
abstract-declarator
opt
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-list
optstatement-list
opt}
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk