Selasa, November 05, 2019

perbedaan antara "int main()" dan "int main(void)" pada bahasa C dan C++

perhatikan dua contoh definisi fungsi main().

int main()
{
/*  */
return 0;
}

dan

int main(void)
{
/*  */
return 0;
}

Apakah perbedaan kedua definisi tersebut?

Pada C++, tidak terdapat perbedaan apapun pada kedua definisi fungsi tersebut. Juga pada bahasa C kedua fungsi tersebut dapat dijalankan dengan baik, tetapi pada definisi fungsi yang kedua, penggunaan void secara teknis dianggap lebih baik karena memberikan gambaran lebih jelas bahwa fungsi main akan dipanggil tanpa menggunakan parameter apapun.

Pada bahasa C, tanda pengenal fungsi tidak menjelaskan argumen apapun, yang artinya fungsi dapat dipanggil dengan angka berapapun dari parameter atapun tanpa parameter. Contoh, coba lakukan kompilasi dan jalankan dua contoh program bahasa C berikut. Catatan; Perhatikan perbedaan antara kedua tanda fun().

// Program 1
void fun() { }
int main(void)
{
fun(10, "GfG", "GQ");
return 0;
}

Perhatikan bahwa program pertama dapat dijalankan dengan baik, tetapi pada program kedua hal tersebut menyebabkan error.

// Program 2 (Kompilasi gagal)
void fun(void) { }
int main(void)
{
fun(10, "GfG", "GQ");
return 0;
}

Tidak seperti bahasa C, pada C++, kedua contoh program gagal dikompilasi. Hal ini karena pada C++, baik itu fungsi fun() dan fun(void), keduanya dianggap sama. Jadi perbedaannya adalah, pada bahasa C, int main() dapat dipanggil dengan angka berapapun pada argumen, tetapi int main(void) dapat dipanggil tanpa argumen apapun. Meskipun hal ini tidak membuat perbedaan yang besar, penggunaan int main(void) sangat direkomendasikan pada bahasa C.

Latihan, perkirakan hasil output yang akan keluar.

latihan satu,

Latihan dua,





Related Posts

perbedaan antara "int main()" dan "int main(void)" pada bahasa C dan C++
Oleh

"semoga yang memberikan komentar diberikan berkah kebaikan dari Allah, dijauhkan dari kejahatan, dan diberikan pahala ilmu dan amal jariyah dari sepenggal kata yang ia tinggalkan amiin :) "