logo

C İşlevleri

C'de büyük bir programı fonksiyon olarak bilinen temel yapı taşlarına bölebiliriz. Fonksiyon, {} tarafından çevrelenen programlama ifadeleri kümesini içerir. C programına yeniden kullanılabilirlik ve modülerlik sağlamak için bir işlev birden çok kez çağrılabilir. Yani fonksiyonların toplamının bir program oluşturduğunu söyleyebiliriz. Fonksiyon aynı zamanda şu şekilde de bilinir: prosedür veya altprogram diğer programlama dillerinde.

C'deki fonksiyonların avantajı

C fonksiyonlarının aşağıdaki avantajları vardır.

  • Fonksiyonları kullanarak, bir programda aynı mantığı/kodu tekrar tekrar yazmaktan kaçınabiliriz.
  • C fonksiyonlarını bir program içerisinde istenilen sayıda ve herhangi bir yerden çağırabiliriz.
  • Büyük bir C programını birden fazla fonksiyona bölündüğünde kolaylıkla takip edebiliriz.
  • Yeniden kullanılabilirlik, C işlevlerinin ana başarısıdır.
  • Ancak, C programında işlev çağırma her zaman bir yüktür.

İşlev Yönleri

Bir C fonksiyonunun üç yönü vardır.

    İşlev bildirimiDerleyiciye işlev adı, işlev parametreleri ve dönüş türü hakkında bilgi vermek için bir c programında bir işlevin global olarak bildirilmesi gerekir.
    İşlev çağrısıFonksiyon programın herhangi bir yerinden çağrılabilir. Parametre listesi, işlev çağrısı ve işlev bildiriminde farklılık göstermemelidir. İşlev bildiriminde bildirildiği gibi aynı sayıda işlevi iletmeliyiz.Fonksiyon tanımıYürütülmesi gereken gerçek ifadeleri içerir. İşlev çağrıldığında kontrolün geldiği en önemli husustur. Burada fonksiyondan yalnızca bir değerin döndürülebildiğini belirtmeliyiz.
SNC işlevi yönleriSözdizimi
1İşlev bildirimidönüş_tipi işlev_adı (bağımsız değişken listesi);
2İşlev çağrısıişlev_adı (argüman_listesi)
3Fonksiyon tanımıreturn_type function_name (bağımsız değişken listesi) {işlev gövdesi;}

C dilinde fonksiyon oluşturmanın sözdizimi aşağıda verilmiştir:

 return_type function_name(data_type parameter...){ //code to be executed } 

Fonksiyon Türleri

C programlamada iki tür fonksiyon vardır:

    Kütüphane İşlevleri:scanf(), printf(), gets(), puts(), ceil(), Floor() vb. gibi C başlık dosyalarında bildirilen işlevlerdir.Kullanıcı tanımlı işlevler:C programcısının birçok kez kullanabilmesi için yarattığı işlevlerdir. Büyük bir programın karmaşıklığını azaltır ve kodu optimize eder.
C İşlevi

Geri dönüş değeri

Bir C işlevi, işlevden bir değer döndürebilir veya döndürmeyebilir. İşlevden herhangi bir değer döndürmeniz gerekmiyorsa dönüş türü olarak void kullanın.

Fonksiyondan herhangi bir değer döndürmeyen basit bir C fonksiyonu örneğini görelim.

Dönüş değeri olmayan örnek:

 void hello(){ printf('hello c'); } 

Fonksiyondan herhangi bir değer döndürmek istiyorsanız int, long, char vb. herhangi bir veri tipini kullanmanız gerekir. Dönüş tipi fonksiyondan döndürülecek değere bağlıdır.

java'da otomatik kablolu nedir

Fonksiyondan int değeri döndüren basit bir C fonksiyonu örneğini görelim.

Dönüş değeri olan örnek:

sql'yi yayınla
 int get(){ return 10; } 

Yukarıdaki örnekte değer olarak 10 döndürmemiz gerekiyor, dolayısıyla dönüş türü int'tir. Kayan nokta değerini döndürmek istiyorsanız (örneğin, 10.2, 3.1, 54.5, vb.), yöntemin dönüş türü olarak float kullanmanız gerekir.

 float get(){ return 10.2; } 

Şimdi fonksiyonun değerini almak için fonksiyonu çağırmanız gerekiyor.

İşlev çağırmanın farklı yönleri

Bir fonksiyon herhangi bir argümanı kabul edebilir veya etmeyebilir. Herhangi bir değer döndürebilir veya döndürmeyebilir. Bu gerçeklere dayanarak, işlev çağrılarının dört farklı yönü vardır.

  • argümansız ve dönüş değeri olmayan fonksiyon
  • argümansız ve dönüş değeri olan fonksiyon
  • argümanlı ve dönüş değeri olmayan fonksiyon
  • argümanlarla ve dönüş değeriyle işlev

Argümansız ve dönüş değeri olmayan Fonksiyon örneği

örnek 1

 #include void printName(); void main () { printf('Hello '); printName(); } void printName() { printf('Javatpoint'); } 

Çıktı

 Hello Javatpoint 

Örnek 2

 #include void sum(); void main() { printf('
Going to calculate the sum of two numbers:'); sum(); } void sum() { int a,b; printf('
Enter two numbers'); scanf('%d %d',&a,&b); printf('The sum is %d',a+b); } 

Çıktı

 Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34 

Argümansız ve dönüş değeri olan Fonksiyon örneği

örnek 1

 #include int sum(); void main() { int result; printf('
Going to calculate the sum of two numbers:'); result = sum(); printf('%d',result); } int sum() { int a,b; printf('
Enter two numbers'); scanf('%d %d',&a,&b); return a+b; } 

Çıktı

 Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34 

Örnek 2: karenin alanını hesaplayan program

Java'da dönüş türü
 #include int sum(); void main() { printf('Going to calculate the area of the square
'); float area = square(); printf('The area of the square: %f
',area); } int square() { float side; printf('Enter the length of the side in meters: '); scanf('%f',&side); return side * side; } 

Çıktı

 Going to calculate the area of the square Enter the length of the side in meters: 10 The area of the square: 100.000000 

Argümanlı ve dönüş değeri olmayan Fonksiyon örneği

örnek 1

 #include void sum(int, int); void main() { int a,b,result; printf('
Going to calculate the sum of two numbers:'); printf('
Enter two numbers:'); scanf('%d %d',&a,&b); sum(a,b); } void sum(int a, int b) { printf('
The sum is %d',a+b); } 

Çıktı

 Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34 

Örnek 2: Beş sayının ortalamasını hesaplayan program.

 #include void average(int, int, int, int, int); void main() { int a,b,c,d,e; printf('
Going to calculate the average of five numbers:'); printf('
Enter five numbers:'); scanf('%d %d %d %d %d',&a,&b,&c,&d,&e); average(a,b,c,d,e); } void average(int a, int b, int c, int d, int e) { float avg; avg = (a+b+c+d+e)/5; printf('The average of given five numbers : %f',avg); } 

Çıktı

 Going to calculate the average of five numbers: Enter five numbers:10 20 30 40 50 The average of given five numbers : 30.000000 

Argümanlı ve dönüş değeri olan Fonksiyon örneği

örnek 1

 #include int sum(int, int); void main() { int a,b,result; printf('
Going to calculate the sum of two numbers:'); printf('
Enter two numbers:'); scanf('%d %d',&a,&b); result = sum(a,b); printf('
The sum is : %d',result); } int sum(int a, int b) { return a+b; } 

Çıktı

 Going to calculate the sum of two numbers: Enter two numbers:10 20 The sum is : 30 

Örnek 2: Bir sayının tek mi çift mi olduğunu kontrol eden program

 #include int even_odd(int); void main() { int n,flag=0; printf('
Going to check whether a number is even or odd'); printf('
Enter the number: '); scanf('%d',&n); flag = even_odd(n); if(flag == 0) { printf('
The number is odd'); } else { printf('
The number is even'); } } int even_odd(int n) { if(n%2 == 0) { return 1; } else { return 0; } } 

Çıktı

 Going to check whether a number is even or odd Enter the number: 100 The number is even 

C Kütüphanesi İşlevleri

Kitaplık işlevleri, C'de gruplandırılan ve kitaplık adı verilen ortak bir yere yerleştirilen yerleşik işlevlerdir. Bu tür işlevler bazı belirli işlemleri gerçekleştirmek için kullanılır. Örneğin printf, konsolda yazdırmak için kullanılan bir kütüphane işlevidir. Kütüphane fonksiyonları derleyici tasarımcıları tarafından yaratılır. Tüm C standart kitaplık işlevleri, uzantıyla kaydedilen farklı başlık dosyalarında tanımlanır. .H . Bu başlık dosyalarında tanımlanan kütüphane fonksiyonlarından faydalanabilmek için bu başlık dosyalarını programımıza dahil etmemiz gerekmektedir. Örneğin, printf/scanf gibi kütüphane fonksiyonlarını kullanabilmek için standart giriş/çıkış ile ilgili tüm kütüphane fonksiyonlarını içeren başlık dosyası olan stdio.h'yi programımıza dahil etmemiz gerekmektedir.

En çok kullanılan başlık dosyalarının listesi aşağıdaki tabloda verilmiştir.

SNBaşlık dosyasıTanım
1stdio.hBu standart bir giriş/çıkış başlık dosyasıdır. Standart giriş/çıkışla ilgili tüm kütüphane fonksiyonlarını içerir.
2konyum.hBu bir konsol giriş/çıkış başlık dosyasıdır.
3dize.hGets(), puts(), vb. gibi dizeyle ilgili tüm kütüphane işlevlerini içerir.
4stdlib.hBu başlık dosyası malloc(), calloc(), çıkış() vb. gibi tüm genel kütüphane fonksiyonlarını içerir.
5matematik.hBu başlık dosyası sqrt(), pow() vb. gibi matematik işlemleriyle ilgili tüm fonksiyonları içerir.
6zaman.sBu başlık dosyası zamanla ilgili tüm fonksiyonları içerir.
7ctype.hBu başlık dosyası tüm karakter işleme işlevlerini içerir.
8stdarg.hDeğişken argüman fonksiyonları bu başlık dosyasında tanımlanmıştır.
9sinyal.hTüm sinyal işleme fonksiyonları bu başlık dosyasında tanımlanmıştır.
10setjmp.hBu dosya tüm atlama işlevlerini içerir.
on biryerel ayar.hBu dosya yerel ayar işlevlerini içerir.
12hata yok.hBu dosya hata işleme işlevlerini içerir.
13iddia.hBu dosya teşhis işlevlerini içerir.

C işlevlerine ilişkin ek ayrıntılar aşağıda verilmiştir:

C işlevleriyle ilgili birkaç ek bilgi vardır. Bunlardan bazıları aşağıdaki gibidir:

Modüler Programlama: yeteneği bölmek A büyük program C'deki işlevleri kullanmanın temel faydalarından biri, daha küçük, daha yönetilebilir modüllere dönüştürmektir. Her işlev, genel program yapısını düzene sokan ve netleştiren belirli bir işi veya işlevsellik bileşenini içerebilir. Bu modüler strateji, kodun yeniden kullanımını iyileştirir ve bakım ve hata ayıklamayı kolaylaştırır.

js'de base64 kod çözme

Kodun yeniden kullanımı: İşlevleri kullanarak, belirli bir algoritmayı veya mantık parçasını yalnızca bir kez oluşturabilir ve bunu programınız boyunca tekrar tekrar kullanabilirsiniz. Kodu çalıştırmanız gerektiğinde işlevi çağırabilirsiniz, böylece kodu başka bir yere kopyalama zorunluluğunuzdan kurtulursunuz. Sadece gelişimi hızlandırır aynı zamanda tutarlılığı garanti eder ve hata yapma olasılığını azaltır.

Kapsülleme ve Soyutlama: İşlevselliğin uygulanmasının ayrıntılarını gizleyen işlevler, bir düzeyde soyutlama sunar. Bir fonksiyon prototipinin arayüzü bir şekilde tanımlanabilir. başlık dosyası , gerçek uygulama ise farklı bir kaynak dosyada sağlanabilir. Programın diğer bölümleri, arayüz ve uygulamanın ayrılması nedeniyle dahili olarak nasıl uygulandığını anlamaya gerek kalmadan işlevi kullanabilir.

Kolay Program Bakımı: Bir program daha küçük işlevlere bölünürse daha kolay anlaşılabilir ve bakımı daha kolay yapılabilir. Her işleve belirli bir sorumluluk atama yeteneği, kodu daha okunabilir hale getirir ve sorun giderme ve hata ayıklamayı kolaylaştırır. Bir hata bulunursa veya bir değişiklik yapılması gerekiyorsa, programın diğer bölümlerini etkilemeden gerekli işleve odaklanabilirsiniz.

Geliştirilmiş İşbirliği: İşlevler, aynı proje üzerinde çalışan geliştiricilerin işbirliği yapmasına olanak tanır. Program, birden fazla ekip üyesinin üzerinde çalışabilmesi için işlevlere bölünebilir. farklı işlevler bir kerede. Arayüzler iyi belirlenmişse, geliştiriciler çalışmalarını işlevlere sorunsuz bir şekilde entegre edebilirler; bu da üretkenliği artırır ve etkili geliştirmeyi destekler.

Parametreyi geçmek: C'deki bir işleve argümanları veya verileri işleyebilmesi için gönderebilirsiniz. İşlev, bu girdileri kullanarak eylemler gerçekleştirebilir ve sonuçlar üretebilir. Programınızın genel çok yönlülüğünü artıracak parametreleri ileterek işlevlerin esnekliğini ve uyarlanabilirliğini artırabilirsiniz.

Dönüş Değerleri: İşlevler, değerleri kendilerini çağıran koda geri göndererek işlevin yürütme sonuçlarının iletilmesine olanak tanır. Fonksiyon içinde hesaplamalar veya veri manipülasyonu yaptıktan sonra döndürülen değeri programın diğer alanlarında kullanabilirsiniz. Dönüş değerleri bir sonucu hesaplamanız veya işlevin çıktısına bağlı olarak bir koşul oluşturmanız gerektiğinde özellikle yararlıdır.

Çözüm:

Sonuç olarak, fonksiyonlar C programlama için esastır çünkü programa organizasyon, yeniden kullanılabilirlik ve modülerlik . Geliştiriciler, büyük programları daha küçük işlevlere bölerek aynı kodu tekrar tekrar oluşturmaktan kaçınabilir, böylece kodu daha etkili ve bakımı daha kolay hale getirebilirler. Programın herhangi bir yeri bir işlevi çağırabilir, bu da esneklik sağlar ve kontrol akışını geliştirir.

beyan, çağrı , Ve tanım Fonksiyonların birçok özelliğinden sadece birkaçı. Derleyici, fonksiyon bildirimi ile bilgilendirilir. isim, argümanlar , Ve dönüş türü . ile veya olmadan bir fonksiyonu çağırmak mümkündür. parametreler ve ile veya olmadan geri dönüş değeri . Programcılar kodlarının okunabilirliğini ve optimizasyonunu geliştirmek için kullanıcı tanımlı işlevler oluştururken, C kütüphanesi işlevleri printf() Ve tarama() önceden ayarlanmış yetenekler sağlar.

Genel olarak işlevler, C programlamada önemli yapı taşlarıdır; daha fazla organizasyon, kodun yeniden kullanımı ve büyük programların basit takibi gibi faydalar sağlar. İşlev çağrıları bir miktar ek yük getirebilir, ancak avantajları, minimum performans düşüşünden daha ağır basmaktadır. Programcılar fonksiyonları anlayıp kullanarak etkili ve modüler C programları yazabilirler.