Συναρτήσεις στη C – Δημιουργία και χρήση συναρτήσεων
Ακολουθεί ένα παράδειγμα με συναρτήσεις στη C. Οι συναρτήσεις αυτές είναι οι main() και starbar(). Το πρόγραμμα τυπώνει μια επικεφαλίδα από γράμματα και δύο σειρές από 65 αστεράκια, μία πριν και μία μετά την εκτύπωση των γραμμάτων. Η συνάρτηση main(), δηλ. το κυρίως πρόγραμμα τυπώνει την επικεφαλίδα και η συνάρτηση starbar() έχει αναλάβει τη δουλειά που γίνεται δύο φορές, δηλ. την εκτύπωση της σειράς με τα 65 αστεράκια.
Συναρτήσεις στη C – Παράδειγμα
/* διαμόρφωση επικεφαλίδας */ #include <stdio.h> #define NAME "C Language very good " #define ADDRESS "C" #define PLACE "Somwhere" #define LIMIT 65 void starbar(); /* δήλωση της συνάρτησης */ main(){ starbar(); printf("%s \n", NAME); printf("%s \n", ADDRESS); printf("%s \n", PLACE); starbar(); } void starbar() /* ορισμός της συνάρτησης starbar() */{ int count; for (count = 1; count <= LIMIT; count++) putchar(‘*’); putchar(‘\n’); }
Το αποτέλεσμα του προγράμματος θα είναι :
*****************************************************************
C language very good
C
Somewhere
*****************************************************************
Σημαντικά σημεία του προγράμματος
1. Η συνάρτηση starbar() καλείται από τη συνάρτηση main() χρησιμοποιώντας απλά τ’ όνομά της. Μετά το όνομα της συνάρτησης και τις παρενθέσεις πρέπει να ακολουθεί το σύμβολο (;), ως εξής : starbar();
Όταν το πρόγραμμα καθώς εκτελείται φθάσει σε μια κλήση συνάρτησης, αναζητά τη συνάρτηση αυτή και ακολουθεί τις εντολές που βρίσκονται σ’ αυτήν. Όταν τελειώσει, επιστρέφει στην επόμενη γραμμή του καλούντος προγράμματος.
2. Όταν γράφουμε μια συνάρτηση ακολουθούμε την ίδια μορφή που ξέρουμε από τη main(), δηλ. πρώτα το όνομα, μετά το σύμβολο {, μετά η δήλωση των μεταβλητών, μετά οι προτάσεις ορισμού της συνάρτησης και τέλος το σύμβολο }.
3. Οι παρενθέσεις στη starbar() λένε στον μεταγλωττιστή ότι η starbar() είναι μια συνάρτηση. Η starbar() δεν ακολουθείται από το σύμβολο ;, πράγμα που σημαίνει ότι η συνάρτηση αυτή ορίζεται παρά ότι χρησιμοποιείται.
4. Η μεταβλητή count στη starbar() είναι μια τοπική μεταβλητή, δηλ. μια μεταβλητή γνωστή μόνο για τη starbar(). Μπορούμε να χρησιμοποιήσουμε το όνομα count και σ’ άλλες συναρτήσεις χωρίς κανένα πρόβλημα, ακόμα και μέσα στην ίδια την main().
5. Οι συναρτήσεις έχουν κι αυτές τύπους όπως οι μεταβλητές. Ο τύπος void χρησιμοποιείται για συναρτήσεις χωρίς τιμές επιστροφής και ο τύπος αυτός εμφανίζεται στον ορισμό της συνάρτησης.
6. Προγράμματα που χρησιμοποιούν μια συνάρτηση πρέπει να περιέχουν τη δήλωση του τύπου πριν η συνάρτηση χρησιμοποιηθεί. Γι’ αυτόν τον λόγο, η main() περιέχει την εξής δήλωση :
void starbar();
Έτσι δηλώνουμε ότι το πρόγραμμα χρησιμοποιεί μια συνάρτηση τύπου void που ονομάζεται starbar() και ότι ο μεταγλωττιστής θα βρει τον ορισμό αυτής της συνάρτησης κάπου αλλού.
7. Η συνάρτηση starbar() δεν έχει είσοδο, αφού δεν χρειάζεται καμία πληροφορία από το καλούν πρόγραμμα.