Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

5.1 Οι συναρτήσεις στην γλώσσα C

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

Για να ορίσουμε μια συνάρτηση στη C, χρησιμοποιούμε τη δήλωση return_type function_name(parameters), όπου return_type είναι ο τύπος δεδομένων που επιστρέφεται από τη συνάρτηση, function_name είναι το όνομα της συνάρτησης και parameters είναι οι παράμετροι που μπορεί να δέχεται η συνάρτηση.

Μπορούμε να χρησιμοποιήσουμε μια συνάρτηση στη C καλώντας το όνομά της και περνώντας τις απαραίτητες τιμές για τις παραμέτρους, εάν υπάρχουν. Η συνάρτηση εκτελείται και μπορεί να επιστρέψει μια τιμή χρησιμοποιώντας τη δήλωση return.

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

η δεδομένων, την εκτέλεση εντολών εισόδου/εξόδου, τη διαχείριση μνήμης και άλλα. Επίσης, μπορούμε να ορίσουμε συναρτήσεις που δεν επιστρέφουν τιμή (void) ή συναρτήσεις με ορίσματα που δεν χρειάζεται να λάβουν τιμές (void parameters).

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

Ας δούμε ένα ολοκληρωμένο παράδειγμα σε C που ορίζει και χρησιμοποιεί μια συνάρτηση:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#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;
}
#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; }
#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 και εμφανίζει το αποτέλεσμα στην οθόνη.

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Το άθροισμα των 5 και 3 είναι 8
Το άθροισμα των 5 και 3 είναι 8
Το άθροισμα των 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!” στην οθόνη:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdio.h>
int main() {
printf("Hello, world!");
return 0;
}
#include <stdio.h> int main() { printf("Hello, world!"); return 0; }
#include <stdio.h>

int main() {
    printf("Hello, world!");
    return 0;
}

Παρατηρήστε ότι πρέπει να συμπεριλάβετε τη βιβλιοθήκη stdio.h στην αρχή του κώδικά σας για να χρησιμοποιήσετε τη συνάρτηση printf().

Η σύνταξη για τον ορισμό μιας συνάρτησης στη γλώσσα C είναι η εξής:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
return_type function_name(parameters) {
// function body
}
return_type function_name(parameters) { // function body }
return_type function_name(parameters) {
    // function body
}

Ο όρος return_type αναφέρεται στον τύπο της τιμής που η συνάρτηση επιστρέφει. Μπορεί να είναι οποιοσδήποτε τύπος δεδομένων στη γλώσσα C, όπως int, float, char, void κ.λπ. Ο τύπος void χρησιμοποιείται όταν η συνάρτηση δεν επιστρέφει τίποτα.

Ο όρος function_name αναφέρεται στο όνομα της συνάρτησης που ορίζεται. Αυτό το όνομα χρησιμοποιείται για να καλέσετε τη συνάρτηση από άλλα μέρη του προγράμματος.

Οι parameters αναφέρονται στους παραμέτρους που περνάτε στη συνάρτηση, αν υπάρχουν. Οι παράμετροι αυτές είναι μεταβλητές που χρησιμοποιούνται μέσα στο σώμα της συνάρτησης για να δεχτούν τιμές από τον καλούντα κώδικα.

Το “σώμα” της συνάρτησης βρίσκεται μέσα στις αγκύλες {} και περιέχει τον κώδικα που εκτελείται όταν η συνάρτηση καλείται. Ο κώδικας αυτός περιλαμβάνει τις εντολές και τις δηλώσεις που εκτελούνται κατά την κλήση της συνάρτησης.

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
int add(int num1, int num2) {
int sum = num1 + num2;
return sum;
}
int add(int num1, int num2) { int sum = num1 + num2; return sum; }
int add(int num1, int num2) {
    int sum = num1 + num2;
    return sum;
}

Σε αυτό το παράδειγμα, η συνάρτηση ονομάζεται add() και παίρνει δύο παραμέτρους τύπου int, το num1 και το num2. Επιστρέφει το άθροισμα των δύο παραμέτρων χρησιμοποιώντας την εντολή return.

Στο παρακάτω παράδειγμα, καλούμε τη συνάρτηση myFunction() από μέσα στη συνάρτηση main(), και εκτυπώνουμε ένα κείμενο στην οθόνη μέσω αυτής της συνάρτησης:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdio.h>
// Δήλωση της συνάρτησης
void myFunction() {
printf("Hello from myFunction!");
}
// Κλήση της συνάρτησης από τη main
int main() {
myFunction(); // Κλήση της συνάρτησης myFunction
return 0;
}
#include <stdio.h> // Δήλωση της συνάρτησης void myFunction() { printf("Hello from myFunction!"); } // Κλήση της συνάρτησης από τη main int main() { myFunction(); // Κλήση της συνάρτησης myFunction return 0; }
#include <stdio.h>

// Δήλωση της συνάρτησης
void myFunction() {
    printf("Hello from myFunction!");
}

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

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

  1. void myFunction(): Αυτή η συνάρτηση δεν αναμένει οποιεσδήποτε παραμέτρους και δεν επιστρέφει κάποια τιμή (τύπος void). Μέσα στη συνάρτηση, υπάρχει η εντολή printf που εκτυπώνει το μήνυμα “Hello from myFunction!” στην οθόνη.
  2. int main(): Αυτή είναι η κύρια συνάρτηση του προγράμματος, η οποία εκτελείται κατά την εκκίνηση του προγράμματος. Μέσα στην main, υπάρχει η κλήση της συνάρτησης myFunction με τη χρήση του ονόματός της και του τελεστή (). Αυτό οδηγεί στην εκτέλεση του κώδικα που βρίσκεται μέσα στη myFunction. Στην περίπτωση αυτή, ο κώδικας της myFunction απλώς εκτυπώνει το μήνυμα “Hello from myFunction!” στην οθόνη. Τέλος, η main επιστρέφει την τιμή 0, υποδηλώνοντας ότι το πρόγραμμα ολοκληρώθηκε με επιτυχία.

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

με τη χρήση μίας ξεχωριστής συνάρτησης. Αν εκτελέσετε αυτόν τον κώδικα, θα δείτε το μήνυμα “Hello from myFunction!” να εμφανίζεται στην οθόνη.

Μια συνάρτηση μπορεί να καλεστεί πολλές φορές κατά τη διάρκεια της εκτέλεσης του προγράμματος.

Στο παρακάτω παράδειγμα, η συνάρτηση printMessage() καλείται τρεις φορές από τη συνάρτηση main(), και εκτυπώνει το ίδιο κείμενο τρεις φορές:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdio.h>
// Δήλωση της συνάρτησης
void printMessage() {
printf("Hello from printMessage!\n");
}
int main() {
// Κλήση της συνάρτησης printMessage τρεις φορές από τη main
printMessage(); // Καλείται για πρώτη φορά
printMessage(); // Καλείται για δεύτερη φορά
printMessage(); // Καλείται για τρίτη φορά
return 0;
}
#include <stdio.h> // Δήλωση της συνάρτησης void printMessage() { printf("Hello from printMessage!\n"); } int main() { // Κλήση της συνάρτησης printMessage τρεις φορές από τη main printMessage(); // Καλείται για πρώτη φορά printMessage(); // Καλείται για δεύτερη φορά printMessage(); // Καλείται για τρίτη φορά return 0; }
#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, υποδηλώνοντας ότι ολοκλήρωσε την εκτέλεσή του με επιτυχία.

Ο κώδικας δείχνει ότι θα εμφανιστεί το ακόλουθο αποτέλεσμα στην οθόνη:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Hello from printMessage!
Hello from printMessage!
Hello from printMessage!
Hello from printMessage! Hello from printMessage! Hello from printMessage!
Hello from printMessage!
Hello from printMessage!
Hello from printMessage!

Αυτό συμβαίνει επειδή η συνάρτηση printMessage καλείται τρεις φορές από την main με τη χρήση της εντολής printMessage();. Κάθε φορά που η συνάρτηση καλείται, το μήνυμα “Hello from printMessage!” εκτυπώνεται στην οθόνη. Έτσι, το μήνυμα εμφανίζεται τρεις φορές, αναγράφοντας το αποτέλεσμα που θα δείτε στην οθόνη κατά την εκτέλεση του προγράμματος.

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