- Μπορούμε να ορίσουμε δικές μας συναρτήσεις με τον εξής τρόπο:
τύπος αποτελέσματος
όνομα συνάρτησης(δηλώσεις παραμέτρων)
{
δηλώσεις τοπικών μεταβλητών;
εντολές;
return (τιμή);
}
- Οι παράμετροι της συνάρτησης είναι μια σειρά από τύπους και ονόματα
μεταβλητών χωρισμένα με κόμμα.
- Όταν καλείται μια συνάρτηση οι μεταβλητές που ορίστηκαν ως παράμετροι
παίρνουν τις τιμές που δόθηκαν στο όρισμα κατά την κλήση.
- Η εντολή return μπορεί να εμφανιστεί σε οποιοδήποτε σημείο της συνάρτησης.
Στο σημείο εκείνο σταματά η εκτέλεση της συνάρτηση και ο
έλεγχος ροής (control flow) του προγράμματος
συνεχίζει από το σημείο που κλήθηκε η συνάρτηση.
Η τιμή που ακολουθεί την return είναι η τιμή που επιστρέφει η συνάρτηση.
- Παράδειγμα:
/*
* Return x squared
*/
double
sqr(double x)
{
return (x * x);
}
- Αν η συνάρτηση δεν επιστρέφει κάποια τιμή, τότε ορίζουμε τον
τύπο της ως void.
- Αν η συνάρτηση δε δέχεται παραμέτρους τότε γράφουμε στην αντίστοιχη θέση
τη λέξη void.
- Παράδειγμα:
void
print_hello(void)
{
printf("Hello, world\n");
}
- Οι συναρτήσεις μπορούν να οριστούν με οποιαδήποτε σειρά μέσα στο πρόγραμμα.
Αν όμως μια συνάρτηση χρησιμοποιηθεί πριν τον
ορισμό (definition), τότε πρέπει να
προηγηθεί μια
δήλωση (declaration) της συνάρτησης.
Η δήλωση γίνεται με τη μορφή
πρωτοτύπου (prototype) το οποίο έχει την ίδια
μορφή με τον ορισμό του ονόματος και των παραμέτρων, αλλά αντί να
ακολουθείται από το τμήμα με τις εντολής ακολουθείται μόνο από ένα ";".
Παράδειγμα (τυπώνει 25):
/* Declaration */
double sqr(double x);
main()
{
printf("%g\n", sqr(5))
}
/* Definition */
double
sqr(double x)
{
return (x * x);
}