5.3 Ορισμός και δήλωση συνάρτησης στην γλώσσα C

Μόλις μάθατε από τα προηγούμενα κεφάλαια ότι μπορείτε να δημιουργήσετε και να καλέσετε μια συνάρτηση με τον εξής τρόπο:

#include <stdio.h>

// Ορισμός μιας συνάρτησης που εκτυπώνει το μήνυμα "Hello World!"
void myFunction() {
    printf("Hello World!\n");
}

int main() {
    myFunction(); // Κλήση της συνάρτησης myFunction()
    return 0;
}

Μπορείτε να ορίσετε τη συνάρτηση ξεχωριστά από την κύρια συνάρτηση στην αρχή του προγράμματος.

Η δήλωση της συνάρτησης πρέπει να γίνει πριν από την χρήση της.

Αν ορίσετε τη συνάρτηση myFunction() στην αρχή του προγράμματος, μπορείτε να την καλέσετε στη συνάρτηση main() χωρίς να χρειάζεται να προηγηθεί κάποια δήλωση.

Η δήλωση της συνάρτησης περιλαμβάνει τον τύπο της επιστροφής, το όνομα της συνάρτησης και τον τύπο και τα ονόματα των παραμέτρων (εάν υπάρχουν).

Η δήλωση και η υλοποίηση της συνάρτησης παραμένουν ακριβώς ίδιες, με την σύνταξη να παραμένει αμετάβλητη:

Σύνταξη

Δήλωση της συνάρτησης:

return_type function_name(parameter1_type parameter1, parameter2_type parameter2, ...);

Ορισμός συνάρτησης:

return_type function_name(parameter1_type parameter1, parameter2_type parameter2, ...) {
    // function body
    return return_value;
}

Παράδειγμα

#include <stdio.h>

// Δήλωση της συνάρτησης
void myFunction();

int main() {
    // Κλήση της συνάρτησης
    myFunction();
    return 0;
}

// Ορισμός της συνάρτησης
void myFunction() {
    printf("Hello World!\n");
}

Ο παραπάνω κώδικας στη γλώσσα C περιλαμβάνει μία συνάρτηση με όνομα myFunction. Ας δούμε τι κάνει ο κώδικας βήμα προς βήμα:

  1. Περιλαμβάνεται η βιβλιοθήκη stdio.h, που περιέχει τις δηλώσεις συναρτήσεων για την εισαγωγή και έξοδο δεδομένων.
  2. Δηλώνεται η συνάρτηση myFunction με τη χρήση της δήλωσης void myFunction();. Αυτή η συνάρτηση είναι χωρίς επιστροφή τιμής (void), δηλαδή δεν επιστρέφει κάποια τιμή.
  3. Η συνάρτηση main είναι η κύρια συνάρτηση του προγράμματος, όπου ξεκινά η εκτέλεση του προγράμματος.
  4. Καλείται η συνάρτηση myFunction μέσα στην main με τη χρήση της εντολής myFunction();. Αυτό έχει ως αποτέλεσμα την εκτέλεση του κώδικα που βρίσκεται μέσα στη συνάρτηση myFunction.
  5. Η συνάρτηση myFunction ορίζεται με τη χρήση της εντολής void myFunction(). Εδώ, η συνάρτηση εκτελεί μια εντολή, συγκεκριμένα εκτυπώνει το μήνυμα "Hello World!\n" στην οθόνη με τη χρήση της συνάρτησης printf.

Συνολικά, ο κώδικας εκτυπώνει το μήνυμα “Hello World!” στην οθόνη του υπολογιστή μέσω της κλήσης της συνάρτησης myFunction από την main.

Μπορείτε επίσης να δηλώσετε τη συνάρτηση και να την ορίσετε χρησιμοποιώντας παραμέτρους, στην οριστική υλοποίηση της συνάρτησης:

[adinserter block=”2″]

Σύνταξη

Δήλωση της συνάρτησης:

return_type function_name(parameter1_type parameter1, parameter2_type parameter2, ...);

Ορισμός συνάρτησης:

return_type function_name(parameter1_type parameter1, parameter2_type parameter2, ...) {
    // function body
    return return_value;
}

Παράδειγμα

#include <stdio.h>

// Δήλωση της συνάρτησης
void myFunction(int number);

int main() {
    // Κλήση της συνάρτησης
    myFunction(42);
    return 0;
}

// Ορισμός της συνάρτησης
void myFunction(int number) {
    printf("Ο αριθμός είναι %d\n", number);
}

Ο παραπάνω κώδικας στη γλώσσα C περιλαμβάνει μια απλή συνάρτηση με το όνομα myFunction, η οποία δέχεται έναν ακέραιο αριθμό ως όρισμα και εκτυπώνει αυτόν τον αριθμό στην οθόνη.

Στη main συνάρτηση, γίνεται η κλήση της myFunction με την παράμετρο 42, προκαλώντας την εκτέλεση της myFunction. Μετά την κλήση, το πρόγραμμα τερματίζεται με την επιστροφή της τιμής 0.

Όταν η myFunction καλείται, εκτυπώνεται το μήνυμα “Ο αριθμός είναι” ακολουθούμενο από την τιμή του αριθμού που περάστηκε ως όρισμα. Στην περίπτωση αυτή, θα εκτυπωθεί το μήνυμα “Ο αριθμός είναι 42”.

Ο κώδικας απλά επιδεικνύει τη δημιουργία και κλήση μιας συνάρτησης στη γλώσσα C, εκτυπώνοντας έναν αριθμό στην οθόνη.

Μπορείτε να ορίσετε και να δηλώσετε συναρτήσεις που επιστρέφουν τιμές, προσθέτοντας μια δήλωση του τύπου επιστροφής στη δήλωση της συνάρτησης, αντί για τη χρήση της void.

Για παράδειγμα, αν θέλετε να ορίσετε μια συνάρτηση που επιστρέφει έναν ακέραιο αριθμό, μπορείτε να τη δηλώσετε ως εξής:

int myFunction() {
    // Κώδικας της συνάρτησης
    return 42; // Επιστροφή τιμής
}

Στο παραπάνω παράδειγμα, η συνάρτηση myFunction δηλώνεται να επιστρέφει έναν ακέραιο αριθμό. Ο κώδικας της συνάρτησης μπορεί να περιέχει οποιαδήποτε λογική ή υπολογισμό θέλετε. Στο τέλος, μπορείτε να χρησιμοποιήσετε την εντολή return για να επιστρέψετε την τιμή που επιθυμείτε.

Με την παραπάνω δήλωση και ορισμό μιας συνάρτησης που επιστρέφει τιμή, μπορείτε να αποθηκεύσετε την επιστρεφόμενη τιμή σε μια μεταβλητή ή να την χρησιμοποιήσετε απευθείας σε άλλες λειτουργίες του προγράμματος.

Παρακάτω έχουμε ένα παράδειγμα που δηλώνει και ορίζει μια συνάρτηση που επιστρέφει έναν ακέραιο αριθμό:

#include <stdio.h>

// Δήλωση της συνάρτησης
int addNumbers(int x, int y);

int main() {
    int result = addNumbers(10, 5);
    printf("The result is %d\n", result);
    return 0;
}

// Ορισμός της συνάρτησης
int addNumbers(int x, int y) {
    int sum = x + y;
    return sum;
}

Ο παραπάνω κώδικας υλοποιεί μια απλή συνάρτηση που πραγματοποιεί την πρόσθεση δύο ακεραίων αριθμών.

Συγκεκριμένα, ο κώδικας περιλαμβάνει:

  1. Τη δήλωση της συνάρτησης addNumbers(int x, int y), η οποία δέχεται δύο ακεραίους αριθμούς ως παραμέτρους και επιστρέφει έναν ακέραιο αριθμό.
  2. Στη συνέχεια, η main συνάρτηση καλεί την addNumbers παρέχοντας τιμές 10 και 5 ως ορίσματα. Το αποτέλεσμα της κλήσης αποθηκεύεται στη μεταβλητή result.
  3. Τέλος, η τιμή της μεταβλητής result εκτυπώνεται μέσω της συνάρτησης printf, εμφανίζοντας το μήνυμα “The result is” ακολουθούμενο από την τιμή της result.

Έτσι, ο κώδικας εκτυπώνει το αποτέλεσμα της πρόσθεσης των αριθμών 10 και 5, το οποίο είναι 15.

Σημειώστε ότι η δήλωση της συνάρτησης πρέπει να προηγείται της κλήσης της συνάρτησης στο κύριο πρόγραμμα. Αυτό είναι απαραίτητο για να ενημερώσετε το μεταγλωττιστή για την ύπαρξη της συνάρτησης.

20 Ιουνίου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων