fungsi C


Fungsi ialah sekumpulan pernyataan yang bersama-sama melaksanakan tugas. Setiap program C mempunyai sekurang-kurangnya satu fungsi, fungsi utama main() , dan semua atur cara mudah boleh mentakrifkan fungsi tambahan lain.

Anda boleh membahagikan kod kepada fungsi yang berbeza. Bagaimana anda membahagikan kod anda kepada fungsi yang berbeza terpulang kepada anda, tetapi secara logiknya pembahagian itu biasanya berdasarkan setiap fungsi yang melaksanakan tugas tertentu.

Fungsi Pengisytiharan memberitahu pengkompil nama, jenis pulangan dan parameter fungsi. Fungsi definisi menyediakan badan sebenar fungsi.

Pustaka standard C menyediakan sejumlah besar fungsi terbina dalam yang boleh dipanggil oleh program. Sebagai contoh, fungsi strcat() digunakan untuk menggabungkan dua rentetan, dan fungsi memcpy() digunakan untuk menyalin memori ke lokasi lain.

Fungsi mempunyai banyak nama lain, seperti kaedah, subrutin atau program, dsb.

Tentukan fungsi

Bentuk umum definisi fungsi dalam bahasa C adalah seperti berikut:

return_type function_name( parameter list ){
   body of the function}

Dalam bahasa C, fungsi terdiri daripada pengepala fungsi dan badan fungsi. Di bawah disenaraikan semua komponen fungsi:

  • Jenis pulangan: Sesuatu fungsi boleh mengembalikan nilai. return_type ialah jenis data bagi nilai yang dikembalikan oleh fungsi. Sesetengah fungsi melaksanakan operasi yang diperlukan tanpa mengembalikan nilai, dalam kes ini return_type ialah kata kunci void.

  • Nama Fungsi: Ini ialah nama sebenar fungsi. Nama fungsi dan senarai parameter bersama-sama membentuk tandatangan fungsi.

  • Parameter: Parameter adalah seperti ruang letak. Apabila fungsi dipanggil, anda menghantar nilai kepada hujah, yang dipanggil hujah sebenar. Senarai parameter termasuk jenis, susunan dan bilangan parameter fungsi. Parameter adalah pilihan, iaitu, fungsi mungkin tidak mengandungi parameter.

  • Badan fungsi: Badan fungsi mengandungi satu set pernyataan yang mentakrifkan tugas yang dijalankan oleh fungsi tersebut.

Contoh

Berikut ialah kod sumber fungsi max(). Fungsi ini mempunyai dua parameter num1 dan num2, dan akan mengembalikan yang lebih besar daripada dua nombor:

/* 函数返回两个数中较大的那个数 */int max(int num1, int num2) {   /* 局部变量声明 */   int result; 
   if (num1 > num2)
      result = num1;   else
      result = num2; 
   return result; }

Pengisytiharan fungsi

Fungsipengisytiharan akan memberitahu nama Fungsi pengkompil dan bagaimana untuk memanggil fungsi. Badan sebenar fungsi boleh ditakrifkan secara berasingan.

Pengisytiharan fungsi merangkumi bahagian berikut:

return_type function_name( parameter list );

Untuk fungsi max() yang ditakrifkan di atas, berikut ialah pengisytiharan fungsi:

int max(int num1, int num2);

Dalam pengisytiharan fungsi, nama parameter Tidak mengapa, hanya jenis parameter yang diperlukan, jadi yang berikut juga merupakan pengisytiharan yang sah:

int max(int, int);

Pengisytiharan fungsi diperlukan apabila anda menentukan fungsi dalam satu fail sumber dan panggil dalam fail lain. Dalam kes ini, anda harus mengisytiharkan fungsi di bahagian atas fail di mana ia dipanggil.

Panggil fungsi

Apabila anda mencipta fungsi C, anda mentakrifkan fungsi yang dilakukan dan kemudian memanggil fungsi tersebut untuk menyelesaikan tugas yang ditentukan.

Apabila atur cara memanggil fungsi, kawalan atur cara dipindahkan ke fungsi yang dipanggil. Fungsi yang dipanggil melaksanakan tugas yang ditetapkan, dan mengembalikan kawalan atur cara kepada atur cara utama apabila penyataan pemulangan fungsi dilaksanakan, atau apabila kurungan penutup fungsi dicapai.

Apabila memanggil fungsi, lulus parameter yang diperlukan dan jika fungsi itu mengembalikan nilai, anda boleh menyimpan nilai pulangan. Contohnya:

#include <stdio.h> /* 函数声明 */int max(int num1, int num2); int main (){   /* 局部变量定义 */   int a = 100;   int b = 200;   int ret; 
   /* 调用函数来获取最大值 */
   ret = max(a, b);
 
   printf( "Max value is : %d\n", ret ); 
   return 0;} /* 函数返回两个数中较大的那个数 */int max(int num1, int num2) {   /* 局部变量声明 */   int result; 
   if (num1 > num2)
      result = num1;   else
      result = num2; 
   return result; }

Letakkan fungsi max() dan fungsi main() bersama-sama dan susun kod sumber. Apabila boleh laku akhir dijalankan, keputusan berikut dihasilkan:

Max value is : 200

Parameter fungsi

Jika sesuatu fungsi ingin mengambil parameter, ia mesti mengisytiharkan pembolehubah yang menerima nilai parameter. Pembolehubah ini dipanggil parameter formal fungsi.

Parameter formal adalah seperti pembolehubah tempatan yang lain dalam fungsi.

Apabila memanggil fungsi, terdapat dua cara untuk menghantar parameter kepada fungsi:

调用类型描述
传值调用该方法把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数不会影响实际参数。
引用调用该方法把参数的地址复制给形式参数。在函数内,该地址用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。

Secara lalai, C menggunakan panggilan mengikut nilai untuk menghantar parameter. Secara umumnya, ini bermakna kod dalam fungsi tidak boleh mengubah parameter sebenar yang digunakan untuk memanggil fungsi tersebut.