Fungsi Statis dalam Bahasa Komputer C

Fungsi Statis Dalam Bahasa Komputer C



'statis' adalah kata yang dicadangkan dalam bahasa komputer, C. Ini adalah penentu kelas penyimpanan yang dapat digunakan dengan fungsi. Sebuah program C dapat memiliki lebih dari satu file. Hanya satu file yang harus memiliki fungsi C main(). Dalam artikel ini hanya dua file yang dipertimbangkan: file dengan fungsi C main() yang disebut mainFile.c dan file lain tanpa fungsi utama yang disebut otherFile.c

Fungsi Global

Fungsi global adalah fungsi yang didefinisikan dalam file C sebelum fungsi main(). Bahkan fungsi main() adalah fungsi global tetapi fungsi main() bukan fokus dalam artikel ini. Dalam bahasa C, fungsi yang ditentukan programmer biasanya merupakan fungsi global dan hanya disebut sebagai fungsi.

Fungsi global dapat dipanggil dalam cakupan apa pun dalam filenya. Agar fungsi global dapat dilihat dalam file yang berbeda, prototipenya harus dideklarasikan dalam file yang berbeda (lihat di bawah.) Untuk mencegah fungsi yang didefinisikan dalam satu file terlihat di file yang berbeda, awali definisi dengan kata cadangan, statis. Dengan itu, fungsi static akan menjadi fungsi global hanya di filenya sendiri dan tidak akan terlihat di file lain.







Jadi, fungsi global yang didefinisikan di OtherFile.c dapat dilihat di mana saja di OtherFile.c. Agar dapat dilihat di mainFile.c, prototipenya harus dideklarasikan di mainFile.c (lihat di bawah.) Definisinya di OtherFile.c tidak boleh didahului dengan 'statis'. Untuk mencegahnya terlihat di mainFile.c, definisinya di otherFile.c harus dibuat staticdihapus koma dengan mendahuluinya dengan kata, static.



Artikel ini menggambarkan fungsi statis dalam bahasa komputer, C dimulai dengan arti prototipe fungsi dan penggunaannya dalam program C dari dua file atau lebih.



Kompilasi file, mainFile.c dan otherFile.c, dapat dilakukan dengan perintah terminal Bash berikut:





file utama gcc. c File lainnya. c - suhu itu. exe

temp.exe adalah nama file eksekusi tunggal yang dihasilkan.

Isi Artikel



– Pendahuluan – lihat di atas

– Prototipe Fungsi C

– Fungsi Global

– Fungsi Statis Tepat

- Kesimpulan

C Fungsi Prototipe

Pertimbangkan definisi fungsi global:

arang * fn1 ( arang * stri ) {
kembali stri ;
}

Prototipe untuk fungsi ini adalah:

arang * fn1 ( arang * stri ) ;

Ini adalah tanda tangan fungsi, diakhiri dengan titik koma.

Sekarang, biarkan konten dari OtherFile.c menjadi:

arang * fn1 ( arang * stri ) {

kembali stri ;

}

Asumsikan bahwa file, otherFile.c hanya memiliki definisi fungsi global, fn1(). Sekarang biarkan konten file, mainFile.c, menjadi:

#sertakan

arang * fn1 ( arang * stri ) ;

ke dalam utama ( )
{
arang * str = fn1 ( 'terlihat' ) ;
printf ( '%s \n ' , str ) ;

kembali 0 ;
}

Ini dimulai dengan penyertaan header (perpustakaan). Ini diikuti oleh deklarasi prototipe fungsi, fn() dari file lain.

File utama ini tidak memiliki definisi fungsi global apa pun selain fungsi main() default. Dalam fungsi utama, pernyataan pertama memanggil fungsi fn1() yang didefinisikan dalam file lain. Panggilan ini tidak akan efektif jika prototipe fn1() tidak dideklarasikan dalam file ini, mainFile.c.

Jika pembaca telah mengkodekan dua file di atas, maka ia dapat mengkompilasi program menjadi satu file yang dapat dieksekusi dengan perintah berikut:

file utama gcc. c File lainnya. c - suhu itu. exe

menekan tombol Enter di akhir baris. Outputnya harus, 'terlihat'.

Fungsi Global

File mainFile.c dapat dimodifikasi sebagai berikut:

#sertakan

arang * fn1 ( arang * stri ) ;

arang * fn ( arang * st ) {
kembali st ;
}

ke dalam utama ( )
{
arang * str1 = fn1 ( 'terlihat' ) ;
printf ( '%s \n ' , str1 ) ;
arang * str2 = fn ( 'Global terlihat dalam filenya.' ) ;
printf ( '%s \n ' , str2 ) ;
kembali 0 ;
}

Sekarang, ada dua fungsi global dalam file, mainFile.c. Nama-nama fungsinya adalah fn() dan main(). dfn() adalah fungsi global. Ini telah terlihat dalam lingkup lokal fungsi main(), melalui panggilan. Dalam bahasa C, fungsi global dalam lingkup global, seperti fn(), secara sederhana disebut sebagai fungsi. Juga, fungsi global, fn1() dalam file, otherFile.c hanya disebut, sebagai fungsi.

Jika kedua file tersebut dikompilasi ulang menjadi temp.exe, maka outputnya akan menjadi:

terlihat

Global terlihat dalam filenya.

Catatan: definisi fungsi untuk fn() juga dapat dibuat untuk dilihat di file lain, otherFile.c. Untuk mencapainya memiliki deklarasi prototipe di otherFile.c, sebagai berikut:

arang * fn ( arang * st ) ;

diakhiri dengan titik koma. Kegiatan ini, dibiarkan sebagai latihan bagi pembaca.

Fungsi Statis Tepat

Dari pembahasan di atas, suatu fungsi dapat dilihat dalam lingkup apapun (di mana saja) dalam file-nya. Itu juga dapat dilihat di file yang berbeda, untuk program yang sama, jika prototipenya dideklarasikan di sana. Untuk mencegah definisi file terlihat di file lain, buat definisi statis dengan mendahuluinya dengan kata khusus, static. Bahkan jika prototipenya dideklarasikan dalam file yang berbeda, itu tetap tidak akan terlihat di file yang berbeda. File program bahkan tidak akan dikompilasi. Untuk mengilustrasikan ini, biarkan konten file, otherFile.c menjadi:

statis arang * fn1 ( arang * stri ) {

kembali stri ;

}

Ini adalah konten yang sama dalam file, otherFile.c, seperti sebelumnya, tetapi dengan kata cadangan sebelumnya, statis. Isi file mainFile.c, tetap sama. Jika upaya dilakukan untuk mengkompilasi file program dengan perintah,

file utama gcc. c File lainnya. c - suhu itu. exe

kompiler akan mengeluarkan pesan kesalahan, artinya program tidak dapat dikompilasi. Bahkan jika deklarasi prototipe dalam file yang berbeda, juga didahului oleh statis, file program tetap tidak dapat dikompilasi.

Kesimpulan

Definisi fungsi dalam bahasa C, adalah fungsi global. Fungsi ini dapat dipanggil (dilihat) dalam ruang lingkup apa pun dalam file-nya. Agar fungsi ini dapat dilihat di file yang berbeda, seperti file utama, deklarasi prototipenya harus diketik di file yang berbeda itu. Untuk mencegah fungsi ini terlihat di file yang berbeda, buat definisinya menjadi statis dengan mendahuluinya dengan kata yang dicadangkan, statis.