C vs. C++: Forskelle og ligheder

C er grundlaget for C++. Mens C++ er mere udbredt til desktop-apps og -spil, er det en glimrende mulighed at starte med C, især hvis du er ny i softwareverdenen. Læs videre for at vide hvorfor.

Hvad er C?

C er et strukturelt programmeringssprog på højt niveau. Programmer skrevet i C er bærbare. C er stadig et af de bedste programmeringssprog i dag, fordi det er robust. Det bruges til komplekse programmer som indlejrede systemer, drivere, kerner, systemapplikationer, operativsystemer som Microsoft Windows, Apple OS X, databaser som MySQL og nogle IoT-applikationer.

C er et kompileret sprog, hvilket giver et lag af abstraktion mellem maskinkoden og programmet.

Et simpelt C-program til at tilføje to tal vil se sådan ud.

#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;
}

Her er outputtet:

Output af eksempel C-programmet

C-programmer inkluderer stdio.h – standard input output.

STDIO giver grundlæggende input-output funktioner som printf og scanf. printf bruges til at udskrive noget (besked, output) på konsollen, mens scanf bruges til at tage input fra konsollen. Vi bruger %d til at angive, at tallene er heltal.

Hvis du giver decimaler, får du nogle mærkelige svar. For at undgå dette kan du bruge %f. Main()-funktionen er den første funktion, der udføres, når programmet kører. Syntaksen er meget enkel – deklarer variabeltyperne og brug dem derefter.

Hvad er C++?

C++ er baseret på objektorienterede programmeringsprincipper som abstraktion, polymorfi, arv og indkapsling. Du kan tænke på C++ som en forlængelse af C med begrebet klasser og objekter.

  Sådan får du adgang til blokerede websteder på en computer eller mobilenhed

At have objekter til at lagre data gav en pæn struktur til programmerne. Hvis du f.eks. vil gemme detaljer om en elev, kan du oprette en elevklasse og oprette attributter som navn, alder, hobbyer, mærker osv. under klassen. Du kan oprette et rigtigt elevobjekt, når det er nødvendigt!

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

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

I virkeligheden vil objektet kun blive oprettet og hukommelse tildelt under kørsel.

C++ giver høj ydeevne, hvorfor det er det mest populære valg selv i dag til udvikling af højtydende spilmotorer, indlejrede systemer, browsere, compilere og grafikbaserede applikationer som billedbehandling.

Få databaser som MongoDB er skrevet i C++. Ligesom C er C++ bærbar.

Lad os skrive vores tidligere tilføjelsesprogram i C++ – læg mærke til de forskellige funktioner.

#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;
}

Bemærk, at vi bruger cout og cin i stedet for printf og scanf. Typedeklarationer kan også udføres hvor som helst i programmet, før variablen bruges (f.eks. variabelsum). Udskriftserklæringen er ret enkel med kun variabelnavnene. Bemærk, at vi bruger navnerummet std fra iostream-headeren. std har metoder som cout, in og mange flere.

Ligheder mellem C og C++

Man kan sige, at C er en delmængde af C++. Der er mange ligheder mellem C og C++, hvad enten det er i måden programmer er skrevet på eller de applikationer, de bruges til. Begge er robuste, bærbare og højtydende. Nogle vigtige ligheder er:

Sno.FeatureExplanation1.SyntaksBegge har den samme syntaks, f.eks. variabelerklæring, semikolon i slutningen af ​​linjen, navngivningskonventioner osv.2.Strukturel og proceduremæssigHver kodelinje udføres én efter én. Programmerne er opbygget som følger – først importen, derefter variable deklarationer og derefter hovedkoden.3.Main()-funktionAl den kode, der skal udføres, skal være inde i main()-funktionen. main() er det første funktionskald under programafvikling.4.PointersBåde C og C++ bruger pointere på samme måde. En pointer er en variabel, der gemmer hukommelsesadressen for en anden variabel. For eksempel int a = 1;. Så snart denne kode udføres, vil en hukommelse (f.eks. XX0011) blive allokeret til en. Hukommelsesplaceringen af ​​’a’ kan tilgås ved at bruge og-tegnet (&) som int ptr_a = &a;5.Søgeord og operatorerAlle nøgleord og operatorer i C er også gyldige for C++. For eksempel scope, static, public, int osv. C++ har også yderligere operatorer og nøgleord. Ligheder mellem C og C++

  Leder du efter en gratis prøveperiode på Netflix? Prøv disse tjenester i stedet

Forskelle mellem C og C++

C++ blev skabt for at overvinde nogle af manglerne i C og er et supersæt af C. Så ethvert program skrevet i C vil fungere i C++ – men ikke omvendt! Den største forskel mellem C og C++ er, at C++ er baseret på objektorienterede principper (OOP) for programmering. Der er også mere vægt på typekontrol i C++. Der er også et par mere subtile forskelle som angivet nedenfor:

CC++Blev udviklet mellem 1969-1973 af Dennis Ritchie ved AT&T Bell labs Udviklet af Bjarne Stroustrup i 1979. Følger ikke objektorienterede programmeringsprincipper Baseret på OOPS-koncepterne, som indkapsling, polymorfi og arv.C indeholder i alt 32 nøgleord som char , switch, int, static, union og andreAlle C-nøgleordene er gyldige i C++, og 31 yderligere nøgleord er også til stede. Understøtter kun proceduremæssig programmeringC++ understøtter flere programmeringsparadigmer, såsom OOP, generisk og funktionel programmering.Vi kan ikke implementere funktioner i OOP i C .Funktioner som venner, virtuelle funktioner i C++ forbedrer essensen af ​​OOP.C understøtter indbyggede datatyper.C++ understøtter både indbyggede og brugerdefinerede datatyper gennem begrebet klasserDer er mulighed for operatør- eller funktionsoverbelastning C++ understøtter begge operatører og funktionsoverbelastning (polymorfi)Hukommelsesallokering udføres gennem malloc() og calloc() funktioner, og deallokering ved hjælp af gratis()Hukommelseallokering happ ens brug af ny operator, og deallokering ved hjælp af delete operatorC understøtter ikke undtagelseshåndtering Understøtter undtagelseshåndtering Fokuserer på proceduren eller metoden mere end dataMere fokuseret på dataForskelle mellem C og C++

  En begyndervejledning til at lave musik på iPhone og iPad

Nogle andre vigtige funktioner, der kun findes i C++, er:

  • Ved at bruge namespace-nøgleord kan vi oprette variabler af samme navn i forskellige navnerum.
  • Vi kan bruge funktioner inde i en struktur. Strukturer kan også have adgangsmodifikatorer.
  • Understøtter referencevariabler.

Hvornår skal man bruge C eller C++

Dette er en meget almindelig debat blandt programmører – hvorfor skulle jeg lære C, når jeg kan alt i C++?

At lære C vil give dig et solidt fundament på datastrukturer, pointer, nøgleord, begreber for stak, heap og hukommelsesallokering.

Udover det er C stadig meget brugt til højtydende apps, da C-kompileren er hurtigere end C++-kompileren. Så hvis du vil skrive bidder af kode, der ikke kræver objekter og klasser, virtuelle funktioner eller skabeloner, skal du gå efter C, fordi C++ kan være overkill med dets omfattende biblioteker.

De fleste lavniveau-kodning som kerner, operativsystemer og databaser vedligeholdes stadig i C, så at kende C vil også hjælpe dig med at lære C++ hurtigere.

C++ betragtes som et af de hurtigste og mest effektive sprog – og derfor er det stadig et af de bedste programmeringssprog, især for højtydende applikationer som spilmotorer, IoT-enheder og desktop-apps. Mange applikationer bruger en kombination af C- og C++-kode – for at opnå optimal ydeevne og fordelen ved objektorienteret programmering.

Resumé

I denne artikel lærte vi det grundlæggende i C og C++ med et simpelt eksempelprogram. Vi diskuterede de vigtigste forskelle og ligheder mellem begge sprog, og hvornår de skulle bruge hvert.

Hvis du lige er begyndt på din softwareudviklingsrejse, vil start med C give dig et selvtillidsboost, da det er nemt og dækker alle programmeringskoncepter, såsom datastrukturer, pointere, hukommelse og så videre.

Du kan være interesseret i at bruge toadmin.dk’s online C Compiler og C++ Compiler.