Η C είναι απλή/Γνωριμία με την C

Από Βικιβιβλία
Μετάβαση στην πλοήγηση Πήδηση στην αναζήτηση

Περιεκτική Ιστορία[επεξεργασία]

Η αρχική ανάπτυξη της C προέκυψε στα εργαστήρια Bell των AT&T μεταξύ 1969-1973. Ονομάστηκε "C" επειδή τα χαρακτηριστικά της προήλθαν από μια παλαιότερη γλώσσα ονόματι "B", η οποία ήταν μια απλουστευμένη μορφή της BCPL.

Αυτά τα άρθρα θα χρησιμοποιούν κυρίως την έκδοση "ANSI C"( "C89", "C90" ή "ISO/IEC 9899:1990" ). Αν χρησιμοποιούνται χαρακτηριστικά άλλης έκδοσης θα αναφέρονται ειδικά.

Γενικές πληροφορίες[επεξεργασία]

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

Η C είναι μια κυρίως(?) μεταγλωττίσημη γλώσσα, δηλαδή ο πηγαίος κώδικας( source code ) δίνεται σε ένα πρόγραμμα που λέγεται μεταγλωττιστής( compiler ), το οποίο τον μετατρέπει σε γλώσσα μηχανής, την μόνη αναγνωρίσιμη γλώσσα από μεριάς υπολογιστή. Ακόμα δεν χρειάζεται να αναφέρω πως ακριβώς παράγεται ένα εκτελέσιμο...

Περιβάλλον εργασίας[επεξεργασία]

Θα χρειαστεί να βρείτε ένα IDE( Intergrated Development Environment ). Αυτά τα περιβάλλοντα, όπως λέει το όνομά τους, περιέχουν πάνω από ένα εργαλείο ανάπτυξης. Συνήθως περιέχουν Μεταγλωττιστή, Αποσφαλματωτή, Συντάκτη με χρωματισμό κειμένου, τις standard βιβλιοθήκες της γλώσσας και πολλά βοηθήματα.

Επειδή είμαι πολύ του free :D , προτείνω Code::Blocks με MinGW( για Windows ). Ορίστε το site τους ( αν δε σας αρέσει η έκδοση της MinGW που έχει μαζί του, μπορείτε να κατεβάσετε μια νεώτερη έκδοση και να ρυθμίσετε το CodeBlocks ).

Το πρώτο μας πρόγραμμα[επεξεργασία]

Λοιπόν, τέρμα τα λόγια, ας δούμε ένα απλό πρώτο προγραμματάκι:

#include <stdio.h>

/* Απλό και παραδοσιακό πρόγραμμα γνωριμίας */
int main(void)
{
    printf("Hello World!");
    getchar();

    return 0;
}

Ανάλυση τμημάτων[επεξεργασία]

#include <stdio.h>
Η standard συναρτήσεις και διαδικασίες της C είναι οργανωμένες σε αρχεία κεφαλίδες( header files ), τα οποία περιέχουν τα πρωτότυπα( ή δηλώσεις ) των συναρτήσεων/διαδικασιών αυτών. Εδώ περιλαμβάνω το αρχείο "stdio.h", το οποίο περιέχει συναρτήσεις της standard βιβλιοθήκης για είσοδο και έξοδο ( κονσόλα ), μέσα στο πρόγραμμά μου. "#include" είναι μια εντολή προεπεξεργασίας, η οποία πραγματοποιείται πριν απ' τη μεταγλώττιση.
/* Απλό και παραδοσιακό πρόγραμμα γνωριμίας */
Η πιο συνηθισμένη μορφή σχολίου στην C. Οτιδήποτε ανάμεσα στα "/*" και "*/" αγνοείται πλήρως απ' τον μεταγλωττιστή. Να θυμάστε ότι αυτά τα σχόλια δεν εμφωλεύουν. π.χ. "/*/* Διπλό σχόλιο */*/" είναι λάθος, επειδή το τελευταίο "*/" δεν λαμβάνεται ως σχόλιο!!.
int main(void)
Αυτή είναι η συνάρτηση από τη οποία το πρόγραμμά μας αρχίζει την εκτέλεσή του. Το όνομά της "main" είναι υποχρεωτικό, ενώ το "(void)" σημαίνει ότι δεν δέχεται καμία παράμετρο. Κάποιοι ίσως σας δείξουν αυτή τη μορφή "int main()" ή "void main()", αλλά να ξέρεται ότι ο τρόπος που δείχνω εγώ είναι ο σωστότερος. Δεν το λέω εγώ, αλλά η ίδια η ANSI C. Αυτή και μόνο αυτή η συνάρτηση μπορεί να υπάρξει και σαν "int main(int argc, char* argv[ ])", η οποία δέχεται σαν παραμέτρους τον αριθμό των λέξεων που περάστηκαν μέσω της γραμμής εντολών + 1, και τις λέξεις( η πρώτη είναι πάντα το όνομα του προγράμματος ).
{
Πάντα ο κώδικας συναρτήσεων στη C αρχίζει με αυτό το σύμβολο.
printf("Hello World!");
Εδώ καλείται η standard συνάρτηση της C, "printf", η οποία είναι πολύ χρήσιμη στην έξοδο δεδομένων μέσω της κονσόλας και έχει πολλές διαφορετικές χρήσεις. Εδώ της περνάμε σαν παράμετρο μια συμβολοσειρά( string ), η οποία και εκτυπώνεται στη κονσόλα. Σημειώστε ότι σχεδόν όλες( αν όχι όλες ) οι εκφράσεις στην C τελειώνουν με το χαρακτήρα του ελληνικού ερωτηματικού( ; ).
getchar();
Άλλη μια standard συνάρτηση, η οποία επιστρέφει έναν χαρακτήρα που εισήγαγε ο χρήστης στη κονσόλα. Ουσιαστικά εδώ περιμένει να πατηθεί το [Enter] ( οι επιστρεφόμενες τιμές των συναρτήσεων της C μπορούν να αγνοούνται ).
return 0;
Αναγκάζει την "main" να τερματίσει επιστρέφοντας 0 στο λειτουργικό σύστημα, το οποίο σχεδόν πάντα ερμηνεύεται ως επιτυχία[1].
}
Πάντα ο κώδικας συναρτήσεων στη C τελειώνει με αυτό το σύμβολο.

Και τέλος...[επεξεργασία]

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

Αν νιώσετε πνευματική κόπωση κατά τη διάρκεια, μην ανησυχήσετε, είναι φυσικό! ;) :D

  1. Δεν είναι πολύ σημαντικό, αλλά επειδή μπορεί να μην ισχύει πάντα αυτό, το stdio παρέχει δύο χρήσιμες σταθερές. EXIT_SUCCESS και EXIT_FAILURE.