Εισαγωγή στην C/C++


(Revision 2 - 14-10-2002)

Περιεχόμενα


Εισαγωγή

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

Η C έχει χρησιμοποιηθεί για την κατασκευή ενός μεγάλου φάσματος προγραμμάτων . Μερικά τρανταχτά παραδείγματα είναι τα φοβερά γραφικά της ταινίας Star Wars , και ολόκληρο σχεδόν το λειτουργικό σύστημα UNIX (και οι κλώνοι του) .

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

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


Ο μεταγλωτιστής της C

Όπως είπαμε και πριν η C είναι μια μεταγλωτιζόμενη γλώσσα . Aρα χρειαζόμαστε ένα μεταγλωτιστή για να τρέξουμε τα προγράμματά μας . Στα παραδείγματά μας θα χρησιμοποιήσουμε τον μεταγλωτιστή TURBO C της BORLAND για απλή C και τη Microsoft Visual C++ για τη C++ . Μπορείτε να τον κατεβάσετε δωρεάν από το site της BORLAND . TIP : χωρίστε το αρχείο zip σε 3 δισκέτες με τα περιεχόμενα καθενός από τους 3 φακέλους που περιέχει το αρχείο . Κατόπιν τρέξτε το SETUP που βρίσκεται στην πρώτη δισκέτα . Βεβαίως στο Internet κυκλοφορούν εκατοντάδες δωρεάν μεταγλωτιστές της C , οπότε μπορείτε να βρείτε αυτόν που σας ταιριάζει καλύτερα .

Αφού εγκαταστήσετε τον μεταγλωτιστή σας , μπορούμε να αρχίσουμε να γράφουμε κώδικα σε C . Ο TURBO C δεν είναι απλώς μεταγλωτιστής . Παρέχει ένα πλήρες αυτοματοποιημένο περιβάλλον ανάπτυξης προγραμμάτων . Περιλαμβάνει έναν διορθωτή κειμένου ιδανικό για τη συγγραφή κώδικα σε C που καθιστά ευκολότερη την αποσφαλμάτωση του κώδικα , καθώς και έναν debugger . Aλλοι μεταγλωτιστές της C στερούνται διορθωτή κειμένου , οπότε θα πρέπει να γράφετε τον κώδικά σας σε έναν διορθωτή κειμένου που να παράγει αρχεία ASCIL , όπως το Notepad των Widows και το Edit του Dos . H Microsoft Visual C++ είναι πολύπολυπλοκότερη . Για να πληκτρολογήσετε τα παραδείγματα κάνετε File>New>Win32 Console Application και μετά File>New>C++ source file .


Η δομή ενός προγράμματος σε C

Στον editor του TURBO C , (ή σε ένα αρχείο ASCIL) , γράφουμε :

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

Η πρώτη γραμμή είναι η κεντρική συνάρτηση , ο "κορμός" του προγράμματός μας . Η κεντρική συνάρτηση πάντα ονομάζεται main() . Oι παρενθέσεις είναι απαραίτητες για να δηλώνουν ότι η main είναι μια συνάρτηση .

Τα άγκιστρα "{" και "}" χρησιμεύουν για να δείξουν που ξεκινάει και που τελειώνει η συνάρτηση main() .

H συνάρτηση main , περιλαμβάνει 2 εντολές . Η πρώτη είναι η printf("Hello , world !"); . Η δεύτερη είναι η return 0; . Το κοινό χαρακτηριστικό των 2 εντολών είναι το ελληνικό ερωτηματικό . Χρησιμεύει για να δείξει που τελειώνει η μια εντολή και που αρχίζει η επόμενη . Η C είναι μια γλώσσα ελεύθερης μορφής , δηλαδή δεν είναι ανάγκη να τοποθετούμε τη μια εντολή κάτω από την άλλη όπως σε άλλες γλώσσες (πχ BASIC) . Το αποτέλεσμα θα ήταν το ίδιο αν τοποθετούσαμε τις εντολές τη μια δίπλα από την άλλη .

Η printf(); είναι μια συνάρτηση της C , που παίρνει ό,τι βάλουμε μέσα στις παρενθέσεις και το εκτυπώνει στην οθόνη μας . Έτσι η printf("Hello , world !"); παίρνει το κείμενο "Hello , world ! " και το εκτυπώνει στην οθόνη .

Η εντολή return 0; χρησιμεύει για να δηλώσουμε ότι το πρόγραμμά μας τελειώνει εδώ . Στην ουσία η συνάρτηση main "επιστρέφει" τον έλεγχο στο λειτουργικό σύστημα .


Η δομή ενός προγράμματος σε C++

Στον editor της Microsoft Visual C++ , (ή σε ένα αρχείο ASCIL) , γράφουμε :

#include "iostream.h"
main()
{
cout << "Hello , world !";
return 0;
}

H πρώτη γραμμή συμπεριλαμβάνει ένα αρχείο επικεφαλίδας το οποίο μπορούμε να αγνοήσουμε για την ώρα . Τα υπόλοιπα παραμένουν ίδια με το παραπάνω πρόγραμμα , εκτός από τη γραμμή cout . Το cout συμβολίζει την προκαθορισμένη έξοδο . Έξοδος σε ένα πρόγραμμα είναι οι πληροφορίες που "βγαίνουν" από το πρόγραμμα προς το χρήστη . Οι πληροφορίες αυτές μπορεί να είναι γραφικά στην οθόνη, ήχος στα ηχεία , printouts στον εκτυπωτή , ή κείμενο στην οθόνη . Στην περίπτωσή μας η προκαθορισμένη έξοδος είναι η κονσόλα (οθόνη) . Ο τελεστής << δείχνει πως ότι βρίσκεται στα δεξιά του θα πάει στην καθορισμένη έξοδο (οθόνη) . Στην περίπτωσή μας το κείμενο "Hello world" .

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


Μεταγλωτίζοντας το πρώτο μας πρόγραμμα

  • TURBO C: Από το μενού File επιλέγουμε Save . Εκεί δίνουμε ένα όνομα στο αρχείο κώδικα που μόλις γράψαμε .Το όνομα πρέπει να έχει την προέκταση .c . Κατόπιν από το μενού Compile επιλέγουμε Make EXE file και μας βγαίνει ένα μήνυμα επιτυχίας . Αν έχουμε κάνει κάποιο λάθος στον κώδικά μας , ο μεταγλωτιστής θα μας το δείξει . Κατόπιν πάλι από το μενού Compile επιλέγουμε Link EXE file . Τώρα το πρόγραμμά μας είναι έτοιμο . Βρίσκεται μέσα στο φάκελο όπου εγκαταστήσαμε την TURBO C και έχει το όνομα που είχαμε δώσει στο αρχείο κώδικα λίγο πριν . Αν τρέξουμε το πρόγραμμα , θα πάρουμε ένα μήνυμα "Hello , world ! " στην οθόνη μας . Καλύτερα να το τρέξετε από msdos , γιατί από windows πετάγεται γρήγορα ένα παράθυρο με το μήνυμα Hello world και μετά κλείνει γρήγορα (αφού δεν έχει τίποτε άλλο να κάνει) . Σε dos το πρόγραμμα εκτελείται , αλλά το μήνυμα Hello , world παραμένει στην οθόνη . Aν θέλετε οπωσδήποτε να το τρέξετε σε windows χρησιμοποιήστε τη MS Visual C++ (όπως είδαμε παραπάνω οι μεταγλωτιστές της C++ μεταγλωτίζουν προγράμματα σε C . Απλώς προτείνω τον TURBO C σαν μια δωρεάν λύση) , είτε προσθέστε στο πρόγραμμα τη γραμμή getche(); ακριβώς πριν τη return 0; Περισσότερα για αυτή στα επόμενα tutorials

  • MS Visual C++: Από το μενού Build επιλέγουμε Execute... , οπότε το πρόγραμμά μας μεταγλωτίζεται και εκτελείται αυτόματα . Έτσι όμως παίρνουμε απλώς την debug έκδοση του προγράμματος , δηλαδή την έκδοση που χρησιμεύει στην αποσφαλμάτωση . Για το λόγο αυτό το εκτελέσιμο αντιστοιχεί γραμμή - γραμμή στον κώδικα και άρα είναι μεγάλο σε μέγεθος και αργό στην εκτέλεση . Όσο λοιπόν δουλεύουμε με το πρόγραμμα χρησιμοποιούμε τη debug version , αλλά όταν θέλουμε να το μοιράσουμε σε άλλους παράγουμε τη release version . Αυτή δεν αντιστοιχεί γραμμή - γραμμή στον κώδικα και έτσι το πρόγραμμα είναι μικρό και γρήγορο . Για να την παράγουμε στο μενού Build επιλέγουμε Batch Build και τσεκάρουμε το "Release" . Κατόπιν το εκτελέσιμο που θέλουμε θα είναι στο φάκελο "Release" .

  • ΑΛΛΟΙ ΜΕΤΑΓΛΩΤΙΣΤΕΣ: Ανατρέξτε στις οδηγίες που έρχονται μαζί με το μεταγλωτιστή που χρησιμοποιείτε .


Για οποιαδήποτε απορία , διευκρίνιση ή πρόταση έχετε επικοινωνήστε μαζί μου στο email μου