Όλα όσα πρέπει να γνωρίζετε για τις λειτουργίες στο C;



Αυτό το άρθρο θα σας παρουσιάσει μια απλή αλλά μια πολύ θεμελιώδη και σημαντική έννοια που είναι το Functions in C και θα το ακολουθήσετε με μια επίδειξη.

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

Οι συναρτήσεις αποτελούν δομικά στοιχεία οποιασδήποτε γλώσσας προγραμματισμού. Με απλά λόγια, λειτουργήστε σε ένα σύνολο δηλώσεων, που λαμβάνει εισόδους, εκτελεί μια συγκεκριμένη εργασία και μετά επιστρέφει την έξοδο.
Η ιδεολογία πίσω από τη δημιουργία συνάρτησης είναι να συνδέσετε ένα σύνολο σχετικών δηλώσεων μαζί που εκτελεί μια συγκεκριμένη εργασία. Έτσι, δεν χρειάζεται να γράφετε τον ίδιο κωδικό πολλές φορές για διαφορετικά σύνολα εισόδων. Απλώς πρέπει να καλέσετε τη λειτουργία για διαφορετικές εισόδους, θα εκτελέσει την καθορισμένη εργασία για τη δεδομένη είσοδο και θα επιστρέψει την έξοδο. Μπορείτε να καλέσετε τη λειτουργία όσες φορές θέλετε. Σε αυτό το ιστολόγιο, θα μάθουμε κάθε μια απόχρωση σχετικά με τις λειτουργίες στη γλώσσα προγραμματισμού Γ.





δομές δεδομένων & αλγόριθμοι σε Java

Ας ξεκινήσουμε με το πιο θεμελιώδες ερώτημα.

Τι είναι οι λειτουργίες στο C;

Οι λειτουργίες είναι ίδιες στο C όπως και σε οποιαδήποτε άλλη γλώσσα προγραμματισμού. Είναι ένα σύνολο κωδικών που συνδέονται μεταξύ τους για να εκτελέσουν μια συγκεκριμένη εργασία. Το σύνολο του κώδικα που πρέπει να εκτελεστεί καθορίζεται σε σγουρά αγκύλες, δηλαδή '{}'.



Πριν μάθετε πώς να γράφετε μια συνάρτηση στο C, ας καταλάβουμε πρώτα ποια είναι τα πλεονεκτήματα.

Πλεονεκτήματα των λειτουργιών στο Γ

Τα πλεονεκτήματα των λειτουργιών είναι κοινά σε όλες τις γλώσσες προγραμματισμού.
Η κύρια ιδέα πίσω από τη λειτουργία είναι να μειωθεί ο πλεονασμός στον κώδικα. Ας υποθέσουμε ότι έχετε μια λειτουργικότητα που πρέπει να εκτελείται πολλές φορές σε ένα πρόγραμμα, οπότε αντί να το γράφετε πολλές φορές, μπορείτε να δημιουργήσετε μια συνάρτηση για αυτήν την εργασία και να την καλέσετε όσες φορές θέλετε. Ένα άλλο κρυφό πλεονέκτημα είναι, εάν η λογική της λειτουργικότητάς σας αλλάξει μετά, τότε δεν χρειάζεται να προχωρήσετε και να την αλλάξετε σε πολλά μέρη. Απλώς πρέπει να αλλάξετε τον κωδικό σε ένα μέρος (δηλαδή στη συνάρτηση) και θα αντικατοπτρίζεται σε όλο το πρόγραμμα.

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



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

Προχωρώντας με τύπους Λειτουργίας Γ

Τύποι λειτουργιών σε C

Υπάρχουν δύο τύποι λειτουργιών:
Λειτουργίες βιβλιοθήκης
Λειτουργίες που καθορίζονται από το χρήστη

Οι λειτουργίες της βιβλιοθήκης είναι εκείνες οι λειτουργίες που έχουν ήδη καθοριστεί στη βιβλιοθήκη C όπως strcat (), printf (), scanf () κ.λπ. Απλώς πρέπει να συμπεριλάβετε τα κατάλληλα αρχεία κεφαλίδας για να χρησιμοποιήσετε αυτές τις λειτουργίες.
Οι λειτουργίες που καθορίζονται από τον χρήστη είναι εκείνες οι λειτουργίες που ορίζονται από τον χρήστη. Αυτές οι λειτουργίες γίνονται για επαναχρησιμοποίηση κώδικα και για εξοικονόμηση χρόνου και χώρου.

Τώρα που γνωρίζουμε τα οφέλη από τη δημιουργία μιας συνάρτησης, ας καταλάβουμε πώς να δηλώσουμε μια συνάρτηση στο C.

Δήλωση λειτουργίας & ορισμός

Δήλωση λειτουργίας:

Σύνταξη δήλωσης συνάρτησης:

return_type function_name (data_type arg1, data_type arg2) int add (int x, int y) // συνάρτηση δήλωσης

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

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

int add (int, int) // δήλωση συνάρτησης

Η παραπάνω καθορισμένη συνάρτηση θα έχει δύο ακέραιες παραμέτρους.

Ορισμός λειτουργίας

 Image- Λειτουργίες στο C- Edureka
int add (int, int) // δήλωση συνάρτησης return_type function_name (παράμετροι) {Function body}

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

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

  • Τύπος επιστροφής: Ο τύπος επιστροφής είναι ο τύπος δεδομένων της τιμής που θα επιστραφεί από τη συνάρτηση. Η συνάρτηση μπορεί ή όχι να επιστρέψει μια τιμή. Εάν συμβαίνει αυτό, πρέπει να καθοριστεί ο τύπος δεδομένων της τιμής επανασύνδεσης, διαφορετικά ο τύπος επιστροφής πρέπει να είναι άκυρος.

  • Όνομα λειτουργίας: Αυτό είναι το όνομα της συνάρτησης χρησιμοποιώντας την οποία μπορούμε να καλέσουμε τη συνάρτηση όταν και όπου χρειάζεται.

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

Σώμα λειτουργίας: Το σώμα λειτουργίας είναι το σύνολο της δήλωσης που εκτελεί μια συγκεκριμένη εργασία. Καθορίζει τι κάνει η λειτουργία.

Παράδειγμα:

int add (int x, int y) {int sum = x + y επιστροφή (άθροισμα)}

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

Παράδειγμα:

#include int add (int, int) // function statement // function function int add (int x, int y) // function header {// function body int sum = x + y return (άθροισμα)} // Κύρια συνάρτηση int main () {int sum = add (23, 31) printf ('% d', άθροισμα) επιστροφή 0}

Όπως μπορούμε να δούμε στο παραπάνω παράδειγμα ότι καλούμε τη συνάρτηση χρησιμοποιώντας τη δήλωση int sum = add (23, 31). Η επιστρεφόμενη τιμή από τη συνάρτηση αποθηκεύεται σε μεταβλητή αθροίσματος.

Πριν προχωρήσουμε, υπάρχει μια πιο σημαντική ιδέα που πρέπει να κατανοήσουμε σχετικά με την παράμετρο. Υπάρχουν δύο τύποι παραμέτρων:

Πραγματική παράμετρος : Αυτές οι παράμετροι που μεταβιβάζονται σε συναρτήσεις κατά την κλήση τους είναι γνωστές ως πραγματικές παράμετροι. Για παράδειγμα, τα 23 & 31 στο παραπάνω παράδειγμα είναι οι πραγματικές παράμετροι.

Τυπική παράμετρος : Αυτές οι παράμετροι που λαμβάνονται από τις συναρτήσεις είναι γνωστές ως τυπικές παράμετροι. Για παράδειγμα, x & y στο παραπάνω παράδειγμα είναι οι τυπικές παράμετροι.

Ας προχωρήσουμε γρήγορα και να κατανοήσουμε τους διαφορετικούς τρόπους κλήσης μιας συνάρτησης στο C.

Κλήση μιας συνάρτησης

Υπάρχουν δύο τρόποι με τους οποίους μπορούμε να καλέσουμε μια συνάρτηση:

  • Κλήση ανά αξία
  • Καλέστε με αναφορά

Κλήση ανά αξία

Στη μέθοδο κλήσης βάσει τιμής, η τιμή της πραγματικής παραμέτρου μεταβιβάζεται ως όρισμα στη συνάρτηση. Η τιμή της πραγματικής παραμέτρου δεν μπορεί να αλλάξει από τις τυπικές παραμέτρους.

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

Παράδειγμα:

#include void Call_By_Value (int num1) {num1 = 42 printf ('nInside Function, Number is% d', num1)} int main () {int num num = 24 printf ('n Πριν από τη λειτουργία, ο αριθμός είναι% d', num ) Call_By_Value (num) printf ('nAfter Function, Number is% dn', num) return 0}

Παραγωγή

Στο παραπάνω παράδειγμα, πριν από τη συνάρτηση call by value, η τιμή του αριθμού είναι 24. Στη συνέχεια, μόλις καλέσουμε τη συνάρτηση και περάσουμε την τιμή, και την αλλάξουμε μέσα στη συνάρτηση, γίνεται 42. Όταν επιστρέψουμε και εκτυπώσουμε ξανά του αριθμού στην κύρια λειτουργία, γίνεται 24.

Καλέστε με αναφορά

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

Η ίδια διεύθυνση μνήμης χρησιμοποιείται τόσο για την πραγματική όσο και για την τυπική παράμετρο. Έτσι, εάν τροποποιηθεί η τιμή της τυπικής παραμέτρου, αντικατοπτρίζεται και από την πραγματική παράμετρο.

Στο C χρησιμοποιούμε δείκτες για την εφαρμογή κλήσης με αναφορά. Όπως μπορείτε να δείτε στο παρακάτω παράδειγμα, η συνάρτηση Call_By_Reference αναμένει ένα δείκτη σε ακέραιο.

Τώρα, αυτή η μεταβλητή num1 θα αποθηκεύσει τη διεύθυνση μνήμης της πραγματικής παραμέτρου. Έτσι, για να εκτυπώσετε την τιμή που είναι αποθηκευμένη στη διεύθυνση μνήμης που επισημαίνεται με το num1, πρέπει να χρησιμοποιήσουμε τον τελεστή dereference δηλ. *. Έτσι, η τιμή του * num1 είναι 42.

Ο χειριστής διευθύνσεων και χρησιμοποιείται για τη λήψη της διεύθυνσης μιας μεταβλητής οποιουδήποτε τύπου δεδομένων. Έτσι, στη δήλωση κλήσης συνάρτησης «Call_By_Reference (& num)», η διεύθυνση του αριθμού μεταβιβάζεται έτσι ώστε ο αριθμός να μπορεί να τροποποιηθεί χρησιμοποιώντας τη διεύθυνσή του.

Παράδειγμα

#include // function ορισμός void Call_By_Reference (int * num1) {* num1 = 42 printf ('nInside Function, Number is% d', * num1)} // Main Function int main () {int num num = 24 printf ( 'nΠριν από τη συνάρτηση, ο αριθμός είναι% d', αριθ.) Call_By_Reference (& num) printf ('nAfter Function, Number is% dn', num) return 0}

Παραγωγή

Σε αυτό το παράδειγμα, η τιμή του αριθμού είναι αρχικά 24, μέσα στην κύρια συνάρτηση. Μόλις περάσει στη συνάρτηση Call_By_Reference και η τιμή τροποποιηθεί από την τυπική παράμετρο, άλλαξε και για την πραγματική παράμετρο. Γι 'αυτό όταν εκτυπώνουμε την τιμή του αριθμού μετά τη συνάρτηση εκτυπώνει 42.

Προχωρώντας με τύπους λειτουργίας που καθορίζονται από το χρήστη στο C

Τύποι που καθορίζονται από το χρήστη Λειτουργία στο Γ

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

Προχωρώντας με Χωρίς ορίσματα και χωρίς τιμή επιστροφής

1. Δεν έχουν περάσει ορίσματα και καμία τιμή επιστροφής

Σύνταξη:

δήλωση λειτουργίας:

void function () function call: function () function καθορισμός: void function () {statement}

Παράδειγμα

#include void add () void add () {int x = 20 int y = 30 int sum = x + y printf ('sum% d', sum)} int main () {add () return 0}

Προχωρώντας χωρίς να περάσουν ορίσματα αλλά τιμή επιστροφής

2 Δεν πέρασαν ορίσματα αλλά τιμή επιστροφής

Σύνταξη:

δήλωση λειτουργίας:

int function () function call: function () function definition: int function () {δηλώσεις επιστροφή a}

Παράδειγμα:

#include int add () int add () {int x = 20 int y = 30 int sum = x + y return (άθροισμα)} int main () {int sum sum = add () printf ('sum% d', άθροισμα) επιστροφή 0}

Προχωρώντας με τα επιχειρήματα που έχουν περάσει αλλά δεν υπάρχει τιμή επιστροφής

3 Το επιχείρημα πέρασε αλλά καμία τιμή επιστροφής

Σύνταξη:

είναι καλό άτομο για python

δήλωση λειτουργίας:

void function (int) function call: function (a) function καθορισμός: void function (int a) {statement}

Παράδειγμα:

#include void add (int, int) void add (int x, int y) {int sum = x + y return (άθροισμα)} int main () {add (23, 31) return 0}

Προχωρώντας με το επιχείρημα πέρασε και μια τιμή επιστροφής

4 Το επιχείρημα πέρασε και μια τιμή επιστροφής

Σύνταξη:

δήλωση λειτουργίας:

int function (int) function call: function (a) function definition: int function (int a) {δηλώσεις επιστροφή a}

Παράδειγμα

#include int add (int, int) int add (int x, int y) {int sum = x + y return (άθροισμα)} int main () {int sum = add (23, 31) printf ('% d' , άθροισμα) επιστροφή 0}

Τώρα ας δούμε γρήγορα τις λειτουργίες της βιβλιοθήκης Γ που είναι σημαντικές για τη σύνταξη ενός προγράμματος.

Λειτουργίες βιβλιοθήκης

Οι λειτουργίες της βιβλιοθήκης είναι συναρτήσεις στο C που είναι προκαθορισμένες και υπάρχουν από προεπιλογή. Απλά πρέπει να συμπεριλάβετε το συγκεκριμένο αρχείο κεφαλίδας στο πρόγραμμα και μπορείτε να χρησιμοποιήσετε τις λειτουργίες που ορίζονται σε αυτό το αρχείο κεφαλίδας. Κάθε αρχείο κεφαλίδας παρέχει συγκεκριμένο είδος λειτουργικότητας. Η επέκταση του αρχείου κεφαλίδας είναι .h.

Για παράδειγμα, για να χρησιμοποιήσουμε τις λειτουργίες printf / scanf πρέπει να συμπεριλάβουμε το stdio.h στο πρόγραμμά μας, το οποίο παρέχει λειτουργικότητα σχετικά με την τυπική είσοδο / έξοδο.

Ακολουθεί η λίστα των αρχείων κεφαλίδας.

έναςstdio.hΤυπικό αρχείο κεφαλίδας εισόδου / εξόδου
2μέντα. hΑρχείο κεφαλίδας εισόδου / εξόδου κονσόλας
3string.hΣυναρτήσεις βιβλιοθήκης που σχετίζονται με χορδές όπως παίρνει (), βάζει () κ.λπ.
4stdlib.hΛειτουργίες γενικής βιβλιοθήκης όπως malloc (), calloc (), exit (), κ.λπ.
5math.hΣχετικές συναρτήσεις μαθηματικών λειτουργιών όπως sqrt (), pow () κ.λπ.
6ώρα.ωΛειτουργίες που σχετίζονται με το χρόνο
7ctype.hΛειτουργίες χειρισμού χαρακτήρων
8stdarg.hΛειτουργίες μεταβλητού ορίσματος
9σήμα. hΛειτουργίες χειρισμού σημάτων
10setjmp.hΛειτουργίες άλματος
έντεκαlocale.hΤοπικές συναρτήσεις
12errno.hΣφάλμα χειρισμού λειτουργιών
13επιβεβαιώνω. hΛειτουργίες διαγνωστικών

Τώρα, αφού περάσετε τις παραπάνω συναρτήσεις Γ, θα καταλάβατε κάθε & κάθε απόχρωση της λειτουργίας και πώς να την εφαρμόσετε στη γλώσσα Γ. Ελπίζω ότι αυτό το blog είναι ενημερωτικό και προστιθέμενη αξία για εσάς.

Έτσι, έχουμε φτάσει στο τέλος αυτού του άρθρου σχετικά με τις «Λειτουργίες στο Γ». Εάν θέλετε να μάθετε περισσότερα, ρίξτε μια ματιά στο , μια αξιόπιστη εταιρεία διαδικτυακής μάθησης. Το μάθημα εκπαίδευσης και πιστοποίησης Java J2EE και SOA της Edureka έχει σχεδιαστεί για να σας εκπαιδεύσει τόσο για βασικές όσο και για προχωρημένες ιδέες Java μαζί με διάφορα πλαίσια Java όπως το Hibernate & Spring.

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