Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Argumen adalah nama nilai yang diteruskan ke fungsi oleh panggilan fungsi. Parameter adalah nilai yang diharapkan untuk diterima fungsi. Dalam prototipe fungsi, tanda kurung yang mengikuti nama fungsi berisi daftar lengkap parameter fungsi dan jenisnya. Deklarasi parameter menentukan jenis, ukuran, dan pengidentifikasi nilai yang disimpan dalam parameter.
Sintaksis
function-definition:
declaration-specifiers
Memilihattribute-seqMemilihdeclaratordeclaration-listMemilihcompound-statement
/*
attribute-seq adalah */ khusus Microsoft
declarator:
pointer
Memilihdirect-declarator
direct-declarator: /* Deklarator fungsi */
direct-declarator
(
parameter-type-list
) /* Deklarator gaya baru */
direct-declarator
(
identifier-list
Memilih) /* Deklarator gaya usang */
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
Memilih
parameter-type-list adalah urutan deklarasi parameter yang dipisahkan oleh koma. Bentuk setiap parameter dalam daftar parameter terlihat seperti ini:
registerMemilihtype-specifierdeclaratorMemilih
Parameter fungsi yang dideklarasikan dengan auto atribut menghasilkan kesalahan. Pengidentifikasi parameter digunakan dalam isi fungsi untuk merujuk ke nilai yang diteruskan ke fungsi. Anda dapat memberi nama parameter dalam prototipe, tetapi nama keluar dari cakupan di akhir deklarasi. Itu berarti nama parameter dapat ditetapkan dengan cara yang sama atau berbeda dalam definisi fungsi. Pengidentifikasi ini tidak dapat didefinisikan ulang di blok terluar isi fungsi, tetapi dapat ditentukan ulang di blok dalam berlapis seolah-olah daftar parameter adalah blok penutup.
Setiap pengidentifikasi di harus didahului oleh penentu jenis yang sesuai, seperti yang ditunjukkan parameter-type-list dalam contoh ini:
void new( double x, double y, double z )
{
/* Function body here */
}
Jika setidaknya satu parameter terjadi dalam daftar parameter, daftar dapat diakhir dengan koma diikuti dengan tiga periode (, ...). Konstruksi ini, yang disebut "notasi elipsis," menunjukkan jumlah variabel argumen ke fungsi. Untuk informasi selengkapnya, lihat Panggilan dengan Jumlah Variabel Argumen. Namun, panggilan ke fungsi harus memiliki setidaknya argumen sebanyak ada parameter sebelum koma terakhir.
Jika tidak ada argumen yang akan diteruskan ke fungsi, daftar parameter digantikan oleh kata kunci void. Penggunaan void ini berbeda dari penggunaannya sebagai penentu jenis.
Urutan dan jenis parameter, termasuk penggunaan notasi elipsis, harus sama dalam semua deklarasi fungsi (jika ada) dan dalam definisi fungsi. Jenis argumen setelah konversi aritmatika biasa harus kompatibel dengan penetapan dengan jenis parameter yang sesuai. (Lihat Konversi Aritmatika Biasa untuk informasi tentang konversi aritmatika.) Argumen yang mengikuti elipsis tidak dicentang. Parameter dapat memiliki jenis dasar, struktur, union, pointer, atau array.
Pengkompilasi melakukan konversi aritmatika biasa secara independen pada setiap parameter dan pada setiap argumen, jika perlu. Setelah konversi, tidak ada parameter yang lebih pendek dari , dan tidak ada parameter yang intmemiliki float jenis kecuali jenis parameter secara eksplisit ditentukan seperti float dalam prototipe. Ini berarti, misalnya, yang mendeklarasikan parameter sebagai memiliki efek yang char sama dengan mendeklarasikannya sebagai int.