Οι συναρτήσεις στη γλώσσα C αποτελούν ένα σημαντικό μέρος της γλώσσας και χρησιμοποιούνται για την οργάνωση του κώδικα σε λογικές μονάδες και την επαναχρησιμοποίηση κώδικα. Μια συνάρτηση στη C είναι ένα τμήμα κώδικα που εκτελεί μια συγκεκριμένη λειτουργία και μπορεί να κληθεί από άλλα μέρη του προγράμματος.
Για να ορίσουμε μια συνάρτηση στη C, χρησιμοποιούμε τη δήλωση return_type function_name(parameters)
, όπου return_type
είναι ο τύπος δεδομένων που επιστρέφεται από τη συνάρτηση, function_name
είναι το όνομα της συνάρτησης και parameters
είναι οι παράμετροι που μπορεί να δέχεται η συνάρτηση.
Μπορούμε να χρησιμοποιήσουμε μια συνάρτηση στη C καλώντας το όνομά της και περνώντας τις απαραίτητες τιμές για τις παραμέτρους, εάν υπάρχουν. Η συνάρτηση εκτελείται και μπορεί να επιστρέψει μια τιμή χρησιμοποιώντας τη δήλωση return
.
Οι συναρτήσεις μπορούν να έχουν διάφορες λειτουργίες, όπως την εκτέλεση αριθμητικών υπολογισμών, τη διαχείρισ
η δεδομένων, την εκτέλεση εντολών εισόδου/εξόδου, τη διαχείριση μνήμης και άλλα. Επίσης, μπορούμε να ορίσουμε συναρτήσεις που δεν επιστρέφουν τιμή (void) ή συναρτήσεις με ορίσματα που δεν χρειάζεται να λάβουν τιμές (void parameters).
Η χρήση συναρτήσεων στην γλώσσα C βοηθά στην οργάνωση του κώδικα, την αποφυγή επανάληψης κώδικα και τη δημιουργία πιο συντομευμένου και ευανάγνωστου προγράμματος.
Ας δούμε ένα ολοκληρωμένο παράδειγμα σε C που ορίζει και χρησιμοποιεί μια συνάρτηση:
#include <stdio.h> // Ορισμός της συνάρτησης που προσθέτει δύο ακέραιους αριθμούς int add(int a, int b) { int result = a + b; return result; } int main() { int num1 = 5; // Δήλωση και αρχικοποίηση της μεταβλητής num1 με την τιμή 5 int num2 = 3; // Δήλωση και αρχικοποίηση της μεταβλητής num2 με την τιμή 3 int sum = add(num1, num2); // Κλήση της συνάρτησης add και αποθήκευση του αποτελέσματος στη μεταβλητή sum printf("Το άθροισμα των %d και %d είναι %d\n", num1, num2, sum); // Εκτύπωση του αποτελέσματος στην οθόνη return 0; }
Ο παραπάνω κώδικας περιέχει μια συνάρτηση add
που πραγματοποιεί την πρόσθεση δύο ακεραίων αριθμών και επιστρέφει το αποτέλεσμα. Η add
λαμβάνει δύο παραμέτρους, a
και b
, και αθροίζει τις τιμές τους αποθηκεύοντας το αποτέλεσμα στη μεταβλητή result
, η οποία επιστρέφεται από τη συνάρτηση.
Στη συνέχεια, η συνάρτηση main
είναι η κύρια συνάρτηση του προγράμματος. Δημιουργεί δύο μεταβλητές, num1
και num2
, και τους αναθέτει τις τιμές 5 και 3 αντίστοιχα. Στη συνέχεια, καλεί τη συνάρτηση add
με τις παραμέτρους num1
και num2
, και αποθηκεύει το αποτέλεσμα στη μεταβλητή sum
.
Τέλος, χρησιμοποιείται η συνάρτηση printf
για να εκτυπωθεί το αποτέλεσμα στην οθόνη, εμφανίζοντας τις τιμές των μεταβλητών num1
, num2
και sum
.
Συνολικά, ο κώδικας υπολογίζει το άθροισμα των αριθμών 5 και 3 και εμφανίζει το αποτέλεσμα στην οθόνη.
Όταν εκτελέσετε τον παραπάνω κώδικα, το αποτέλεσμα που θα εμφανιστεί στην οθόνη θα είναι:
Το άθροισμα των 5 και 3 είναι 8
Αυτό συμβαίνει επειδή η συνάρτηση add
πραγματοποιεί την πρόσθεση των παραμέτρων num1
και num2
, δηλαδή των αριθμών 5 και 3. Το αποτέλεσμα, που είναι ο αριθμός 8, αποθηκεύεται στη μεταβλητή sum
. Έπειτα, μέσω της συνάρτησης printf
, το αποτέλεσμα εμφανίζεται στην οθόνη με την κατάλληλη μορφοποίηση που προσδιορίζεται από τη συμβολοσειρά που περιέχει τα κείμενα και τους τελεστές αντικατάστασης (%d
).
[adinserter block=”2″]
Η main()
είναι η κύρια συνάρτηση ενός προγράμματος στη γλώσσα C και καλείται αυτόματα όταν ξεκινά η εκτέλεση του προγράμματος. Είναι ο σημείο εκκίνησης του προγράμματος και από εκεί ξεκινά η εκτέλεση του κώδικα.
Η printf()
είναι μια προεπιλεγμένη συνάρτηση της γλώσσας C που χρησιμοποιείται για την εκτύπωση κειμένου στην οθόνη. Χρησιμοποιείται συνήθως με τη μορφή %d
, %f
, %s
κλπ., οι οποίες αντικαθιστούνται από τιμές μεταβλητών κατά την εκτέλεση, προκειμένου να εμφανιστούν στην οθόνη.
Επιπλέον, υπάρχουν πολλές άλλες προεπιλεγμένες συναρτήσεις στη γλώσσα C. Για παράδειγμα, η scanf()
χρησιμοποιείται για την είσοδο δεδομένων από τον χρήστη, ενώ η strlen()
χρησιμοποιείται για τον υπολογισμό του μήκους μιας συμβολοσειράς. Αυτές οι συναρτήσεις και πολλές άλλες είναι διαθέσιμες κατά την ανάπτυξη προγραμμάτων σε C και βοηθούν στην επίτευξη διάφορων λειτουργιών και εργασιών.
Μπορείτε να χρησιμοποιήσετε προεπιλεγμένες συναρτήσεις αμέσως, χωρίς να χρειάζεται να τις ορίσετε πρώτα. Για παράδειγμα, αυτός ο κώδικας χρησιμοποιεί τη συνάρτηση printf()
για να εκτυπώσει το κείμενο “Hello, world!” στην οθόνη:
#include <stdio.h> int main() { printf("Hello, world!"); return 0; }
Παρατηρήστε ότι πρέπει να συμπεριλάβετε τη βιβλιοθήκη stdio.h
στην αρχή του κώδικά σας για να χρησιμοποιήσετε τη συνάρτηση printf()
.
Η σύνταξη για τον ορισμό μιας συνάρτησης στη γλώσσα C είναι η εξής:
return_type function_name(parameters) { // function body }
Ο όρος return_type
αναφέρεται στον τύπο της τιμής που η συνάρτηση επιστρέφει. Μπορεί να είναι οποιοσδήποτε τύπος δεδομένων στη γλώσσα C, όπως int
, float
, char
, void
κ.λπ. Ο τύπος void
χρησιμοποιείται όταν η συνάρτηση δεν επιστρέφει τίποτα.
Ο όρος function_name
αναφέρεται στο όνομα της συνάρτησης που ορίζεται. Αυτό το όνομα χρησιμοποιείται για να καλέσετε τη συνάρτηση από άλλα μέρη του προγράμματος.
Οι parameters
αναφέρονται στους παραμέτρους που περνάτε στη συνάρτηση, αν υπάρχουν. Οι παράμετροι αυτές είναι μεταβλητές που χρησιμοποιούνται μέσα στο σώμα της συνάρτησης για να δεχτούν τιμές από τον καλούντα κώδικα.
Το “σώμα” της συνάρτησης βρίσκεται μέσα στις αγκύλες {}
και περιέχει τον κώδικα που εκτελείται όταν η συνάρτηση καλείται. Ο κώδικας αυτός περιλαμβάνει τις εντολές και τις δηλώσεις που εκτελούνται κατά την κλήση της συνάρτησης.
Εδώ είναι ένα απλό παράδειγμα μιας συνάρτησης που επιστρέφει το άθροισμα δύο ακεραίων αριθμών:
int add(int num1, int num2) { int sum = num1 + num2; return sum; }
Σε αυτό το παράδειγμα, η συνάρτηση ονομάζεται add()
και παίρνει δύο παραμέτρους τύπου int
, το num1
και το num2
. Επιστρέφει το άθροισμα των δύο παραμέτρων χρησιμοποιώντας την εντολή return
.
Στο παρακάτω παράδειγμα, καλούμε τη συνάρτηση myFunction()
από μέσα στη συνάρτηση main()
, και εκτυπώνουμε ένα κείμενο στην οθόνη μέσω αυτής της συνάρτησης:
#include <stdio.h> // Δήλωση της συνάρτησης void myFunction() { printf("Hello from myFunction!"); } // Κλήση της συνάρτησης από τη main int main() { myFunction(); // Κλήση της συνάρτησης myFunction return 0; }
Ο παραπάνω κώδικας σε C περιλαμβάνει μία συνάρτηση με το όνομα myFunction
και μία κύρια συνάρτηση με το όνομα main
. Ας δούμε τι κάνει ο κάθε κομμάτι του κώδικα:
void myFunction()
: Αυτή η συνάρτηση δεν αναμένει οποιεσδήποτε παραμέτρους και δεν επιστρέφει κάποια τιμή (τύποςvoid
). Μέσα στη συνάρτηση, υπάρχει η εντολήprintf
που εκτυπώνει το μήνυμα “Hello from myFunction!” στην οθόνη.int main()
: Αυτή είναι η κύρια συνάρτηση του προγράμματος, η οποία εκτελείται κατά την εκκίνηση του προγράμματος. Μέσα στηνmain
, υπάρχει η κλήση της συνάρτησηςmyFunction
με τη χρήση του ονόματός της και του τελεστή()
. Αυτό οδηγεί στην εκτέλεση του κώδικα που βρίσκεται μέσα στηmyFunction
. Στην περίπτωση αυτή, ο κώδικας τηςmyFunction
απλώς εκτυπώνει το μήνυμα “Hello from myFunction!” στην οθόνη. Τέλος, ηmain
επιστρέφει την τιμή 0, υποδηλώνοντας ότι το πρόγραμμα ολοκληρώθηκε με επιτυχία.
Ο κώδικας συνοψίζεται σε ένα απλό παράδειγμα που εκτυπώνει ένα μήνυμα στην οθόνη
με τη χρήση μίας ξεχωριστής συνάρτησης. Αν εκτελέσετε αυτόν τον κώδικα, θα δείτε το μήνυμα “Hello from myFunction!” να εμφανίζεται στην οθόνη.
Μια συνάρτηση μπορεί να καλεστεί πολλές φορές κατά τη διάρκεια της εκτέλεσης του προγράμματος.
Στο παρακάτω παράδειγμα, η συνάρτηση printMessage()
καλείται τρεις φορές από τη συνάρτηση main()
, και εκτυπώνει το ίδιο κείμενο τρεις φορές:
#include <stdio.h> // Δήλωση της συνάρτησης void printMessage() { printf("Hello from printMessage!\n"); } int main() { // Κλήση της συνάρτησης printMessage τρεις φορές από τη main printMessage(); // Καλείται για πρώτη φορά printMessage(); // Καλείται για δεύτερη φορά printMessage(); // Καλείται για τρίτη φορά return 0; }
Ο παραπάνω κώδικας ορίζει μια συνάρτηση με το όνομα printMessage
, η οποία δεν αποδέχεται κανένα όρισμα και δεν επιστρέφει τίποτα. Απλά εκτυπώνει το μήνυμα “Hello from printMessage!” στην οθόνη.
Στη συνέχεια, η συνάρτηση printMessage
καλείται τρεις φορές από την main
μέσω της εντολής printMessage();
. Κάθε φορά που η συνάρτηση καλείται, το μήνυμα εμφανίζεται στην οθόνη.
Το πρόγραμμα ολοκληρώνεται επιστρέφοντας την τιμή 0 από την main
, υποδηλώνοντας ότι ολοκλήρωσε την εκτέλεσή του με επιτυχία.
Ο κώδικας δείχνει ότι θα εμφανιστεί το ακόλουθο αποτέλεσμα στην οθόνη:
Hello from printMessage! Hello from printMessage! Hello from printMessage!
Αυτό συμβαίνει επειδή η συνάρτηση printMessage
καλείται τρεις φορές από την main
με τη χρήση της εντολής printMessage();
. Κάθε φορά που η συνάρτηση καλείται, το μήνυμα “Hello from printMessage!” εκτυπώνεται στην οθόνη. Έτσι, το μήνυμα εμφανίζεται τρεις φορές, αναγράφοντας το αποτέλεσμα που θα δείτε στην οθόνη κατά την εκτέλεση του προγράμματος.