C εναντίον C++: Διαφορές και ομοιότητες

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

Τι είναι το C;

Η C είναι μια υψηλού επιπέδου δομική γλώσσα προγραμματισμού. Τα προγράμματα γραμμένα σε C είναι φορητά. Η C εξακολουθεί να είναι μία από τις κορυφαίες γλώσσες προγραμματισμού σήμερα επειδή είναι ισχυρή. Χρησιμοποιείται για πολύπλοκα προγράμματα όπως ενσωματωμένα συστήματα, προγράμματα οδήγησης, πυρήνες, εφαρμογές συστήματος, λειτουργικά συστήματα όπως τα Microsoft Windows, το Apple OS X, βάσεις δεδομένων όπως η MySQL και ορισμένες εφαρμογές IoT.

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

Ένα απλό πρόγραμμα C για την προσθήκη δύο αριθμών θα μοιάζει με αυτό.

#include<stdio.h>
int main()
{
int a, b, sum;
printf("Enter two numbers to add: ");
scanf("%d%d", &a, &b);
sum = a + b;
printf("nSum of %d and %d is %d", a, b, sum);
return 0;
}

Εδώ είναι η έξοδος:

Έξοδος του παραδείγματος προγράμματος C

Τα προγράμματα C περιλαμβάνουν stdio.h – την τυπική έξοδο εισόδου.

Το STDIO παρέχει βασικές λειτουργίες εισόδου-εξόδου όπως printf και scanf. Το printf χρησιμοποιείται για την εκτύπωση κάτι (μήνυμα, έξοδος) στην κονσόλα, ενώ το scanf χρησιμοποιείται για τη λήψη εισόδων από την κονσόλα. Χρησιμοποιούμε %d για να υποδείξουμε ότι οι αριθμοί είναι ακέραιοι.

Αν δώσετε δεκαδικά, θα λάβετε μερικές περίεργες απαντήσεις. Για να αποφύγετε αυτό, μπορείτε να χρησιμοποιήσετε %f. Η συνάρτηση main() είναι η πρώτη συνάρτηση που εκτελείται όταν εκτελείται το πρόγραμμα. Η σύνταξη είναι πολύ απλή – δηλώστε τους τύπους μεταβλητών και στη συνέχεια χρησιμοποιήστε τους.

Τι είναι η C++;

Η C++ βασίζεται σε αντικειμενοστρεφείς αρχές προγραμματισμού όπως η αφαίρεση, ο πολυμορφισμός, η κληρονομικότητα και η ενθυλάκωση. Μπορείτε να σκεφτείτε τη C++ ως επέκταση της C με την έννοια των κλάσεων και των αντικειμένων.

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

class Student {
public: 
char name[20];
int age;
float marks;
};

//This will create an object
Student student1 = new Student();

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

  Πώς να στείλετε ηχητικά μηνύματα χρησιμοποιώντας το Siri στο iPhone

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

Λίγες βάσεις δεδομένων όπως η MongoDB είναι γραμμένες σε C++. Ακριβώς όπως η C, η C++ είναι φορητή.

Ας γράψουμε το προηγούμενο πρόγραμμα προσθήκης σε C++ – παρατηρήστε τις διαφορετικές συναρτήσεις.

#include <iostream>
using namespace std;
int main() {
int a, b;
cout << "Enter the numbers: "; 
cin >> a >> b;
int sum = a + b;
cout << a << " + " << b << " = " << sum;
return 0;
}

Σημειώστε ότι χρησιμοποιούμε cout και cin αντί για printf και scanf. Επίσης, οι δηλώσεις τύπου μπορούν να γίνουν οπουδήποτε στο πρόγραμμα πριν χρησιμοποιηθεί η μεταβλητή (για παράδειγμα, η μεταβλητή άθροισμα). Η δήλωση εκτύπωσης είναι αρκετά απλή με μόνο τα ονόματα των μεταβλητών. Σημειώστε ότι χρησιμοποιούμε το namespace std από την κεφαλίδα iostream. Το std έχει τις μεθόδους όπως cout, in και πολλές άλλες.

Ομοιότητες μεταξύ C και C++

Μπορείτε να πείτε ότι το C είναι ένα υποσύνολο της C++. Υπάρχουν πολλές ομοιότητες μεταξύ της C και της C++, είτε πρόκειται για τον τρόπο εγγραφής των προγραμμάτων είτε για τις εφαρμογές για τις οποίες χρησιμοποιούνται. Και τα δύο είναι στιβαρά, φορητά και υψηλής απόδοσης. Μερικές σημαντικές ομοιότητες είναι:

Sno.FeatureExplanation1.SyntaxΚαι τα δύο έχουν την ίδια σύνταξη, για παράδειγμα, δήλωση μεταβλητής, άνω και κάτω τελεία τέλους γραμμής, συμβάσεις ονομασίας κ.λπ. 2.Δομική και διαδικαστικήΚάθε γραμμή κώδικα εκτελείται μία προς μία. Τα προγράμματα είναι δομημένα ως εξής – πρώτα οι εισαγωγές, μετά οι δηλώσεις μεταβλητών και μετά ο κύριος κώδικας. 3. Λειτουργία Main()Όλος ο κώδικας που πρέπει να εκτελεστεί πρέπει να βρίσκεται μέσα στη συνάρτηση main(). Η main() είναι η πρώτη κλήση συνάρτησης κατά την εκτέλεση του προγράμματος.4.Οι δείκτες Και η C και η C++ χρησιμοποιούν δείκτες με τον ίδιο τρόπο. Ένας δείκτης είναι μια μεταβλητή που αποθηκεύει τη διεύθυνση μνήμης μιας άλλης μεταβλητής. Για παράδειγμα, int a = 1;. Μόλις εκτελεστεί αυτός ο κώδικας, θα εκχωρηθεί μια μνήμη (ας πούμε, XX0011) για ένα. Η θέση μνήμης του ‘a’ μπορεί να προσπελαστεί χρησιμοποιώντας το συμπλεκτικό σύμβολο (&) ως int ptr_a = &a;5. Λέξεις-κλειδιά και τελεστέςΌλες οι λέξεις-κλειδιά και οι τελεστές που υπάρχουν στο C ισχύουν και για τη C++. Για παράδειγμα, scope, static, public, int, κ.λπ. Το C++ έχει επιπλέον τελεστές και λέξεις-κλειδιά. Ομοιότητες μεταξύ C και C++

  Βρείτε ποιος μένει στη γειτονιά σας;

Διαφορές μεταξύ C και C++

Η C++ δημιουργήθηκε για να ξεπεράσει κάποιες από τις αδυναμίες της C και είναι ένα υπερσύνολο της C. Έτσι, οποιοδήποτε πρόγραμμα γραμμένο σε C θα λειτουργεί σε C++ – αλλά όχι το αντίστροφο! Η κύρια διαφορά μεταξύ C και C++ είναι ότι η C++ βασίζεται σε αντικειμενοστραφή αρχές προγραμματισμού (OOP). Επίσης, δίνεται μεγαλύτερη έμφαση στον έλεγχο τύπου στη C++. Υπάρχουν επίσης μερικές πιο λεπτές διαφορές όπως αναφέρονται παρακάτω:

Το CC++ Αναπτύχθηκε μεταξύ 1969-1973 από τον Dennis Ritchie στα εργαστήρια AT&T Bell Αναπτύχθηκε από τον Bjarne Stroustrup το 1979. Δεν ακολουθεί αντικειμενοστρεφείς αρχές προγραμματισμού Βασισμένο στις έννοιες OOPS, όπως ενθυλάκωση, πολυμορφισμός και κληρονομικότηταC περιέχει ένα σύνολο λέξεων-κλειδιών όπως , switch, int, static, union και άλλαΌλες οι λέξεις-κλειδιά C είναι έγκυρες στη C++ και υπάρχουν επίσης 31 πρόσθετες λέξεις-κλειδιά. Υποστηρίζει μόνο διαδικαστικό προγραμματισμό ΤοC++ υποστηρίζει πολλαπλά παραδείγματα προγραμματισμού, όπως OOP, γενικός και λειτουργικός προγραμματισμός Δεν μπορούμε να εφαρμόσουμε δυνατότητες του OOP στο C .Δυνατότητες όπως φίλοι, εικονικές συναρτήσεις στη C++ ενισχύουν την ουσία του OOP.C υποστηρίζει ενσωματωμένους τύπους δεδομένων. Η C++ υποστηρίζει τόσο ενσωματωμένους όσο και καθορισμένους από τον χρήστη τύπους δεδομένων μέσω της έννοιας των κλάσεωνΥπάρχει πρόβλεψη για υπερφόρτωση τελεστών ή συνάρτησης ΤοC++ υποστηρίζει και τους δύο τελεστές και υπερφόρτωση συνάρτησης (πολυμορφισμός) Η εκχώρηση μνήμης γίνεται μέσω των συναρτήσεων malloc() και calloc() και η κατανομή με χρήση free()εκχώρησης μνήμης happ ens χρήση νέου τελεστή και κατανομή με χρήση διαγραφής Ο τελεστήςC δεν υποστηρίζει χειρισμό εξαιρέσεωνΥποστηρίζει χειρισμό εξαιρέσεων Εστιάζει στη διαδικασία ή τη μέθοδο περισσότερο από τα δεδομέναΠερισσότερο εστίαση στα δεδομέναΔιαφορές μεταξύ C και C++

  Πώς να δημιουργήσετε μια διάσκεψη μέσω τηλεφώνου με το Microsoft Teams

Κάποια άλλα σημαντικά χαρακτηριστικά που υπάρχουν μόνο στη C++ είναι:

  • Χρησιμοποιώντας τη λέξη-κλειδί namespace, μπορούμε να δημιουργήσουμε μεταβλητές με το ίδιο όνομα σε διαφορετικούς χώρους ονομάτων.
  • Μπορούμε να χρησιμοποιήσουμε συναρτήσεις μέσα σε μια δομή. Οι δομές μπορούν επίσης να έχουν τροποποιητές πρόσβασης.
  • Υποστηρίζει μεταβλητές αναφοράς.

Πότε να χρησιμοποιήσετε C ή C++

Αυτή είναι μια πολύ κοινή συζήτηση μεταξύ των προγραμματιστών – γιατί να μάθω C όταν μπορώ να κάνω τα πάντα στη C++;

Η εκμάθηση C θα σας δώσει μια σταθερή βάση για δομές δεδομένων, δείκτες, λέξεις-κλειδιά, έννοιες στοίβας, σωρού και κατανομής μνήμης.

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

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

Η C++ θεωρείται μια από τις πιο γρήγορες και αποτελεσματικές γλώσσες – γι’ αυτό εξακολουθεί να είναι μια από τις κορυφαίες γλώσσες προγραμματισμού, ειδικά για εφαρμογές υψηλής απόδοσης όπως μηχανές παιχνιδιών, συσκευές IoT και εφαρμογές επιτραπέζιου υπολογιστή. Πολλές εφαρμογές χρησιμοποιούν συνδυασμό κώδικα C και C++ – για να επιτύχουν τη βέλτιστη απόδοση και το όφελος του αντικειμενοστρεφούς προγραμματισμού.

Περίληψη

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

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

Μπορεί να σας ενδιαφέρει να χρησιμοποιήσετε τον διαδικτυακό μεταγλωττιστή C και τον μεταγλωττιστή C++ του grtechpc.org.