Bagikan melalui


Menggunakan Nama Fungsi Tanpa () Tidak Menghasilkan Kode

Ketika nama fungsi yang dideklarasikan dalam program Anda digunakan tanpa tanda kurung, pengkompilasi tidak menghasilkan kode. Ini terjadi terlepas dari apakah fungsi mengambil parameter karena pengkompilasi menghitung alamat fungsi; namun, karena operator panggilan fungsi "()" tidak ada, tidak ada panggilan yang dilakukan. Hasil ini mirip dengan yang berikut ini:

// compile with /Wall to generate a warning
int a;
a;      // no code generated here either

Di Visual C++, bahkan menggunakan peringatan tingkat 4 tidak menghasilkan output diagnostik. Tidak ada peringatan yang dikeluarkan; tidak ada kode yang diproduksi.

Kode sampel di bawah ini mengkompilasi (dengan peringatan) dan menautkan dengan benar tanpa kesalahan tetapi tidak menghasilkan kode dalam referensi ke funcn( ). Agar ini berfungsi dengan benar, tambahkan operator panggilan fungsi "()".

#include <stdio.h>
void funcn();

int main() {
   funcn;      /* missing function call operator;
                  call will fail.  Use funcn() */
   }

void funcn() {
   printf("\nHello World\n");
}

Lihat juga

Mengoptimalkan Kode Anda