Hur man lär sig C-programmering med detta nybörjarprojekt
Annons
Att lära sig att programmera är en kumulativ upplevelse. Förutom att lära sig syntaxen för ditt valda språk måste du också lära dig de allmänna principerna som alla programmeringsspråk använder.
Att förstå och lära sig C-programmering kan vara skrämmande, men det finns några grundläggande idéer som är värda att bekanta dig med när du börjar. Ett enkelt projekt är ett bra sätt att lära sig grunderna i C.
Så var ska du börja? Genom att säga hej!
1. Hej, världen!
Den första delen av nästan varje kodningskurs är hej världsprogrammet . Att gå igenom det i detalj belyser några av de sätt C skiljer sig från andra språk. Till att börja med öppnar du en textredigerare eller IDE Text Editors vs. IDE: Vilken är bättre för programmerare? Textredigerare kontra IDE: Vilken är bättre för programmerare? Att välja mellan en avancerad IDE och en enklare textredigerare kan vara svårt. Vi erbjuder lite insikt som hjälper dig att fatta det beslutet. Läs mer av ditt val och ange den här koden:
#include /* this is a Hello World script in C */ int main(void) { printf("Hello, World! \n"); return 0; }
Den här korta biten kod skriver ut till konsolen innan programmet avslutas. Spara det någonstans lätt att komma ihåg som hello.c . Nu måste du sammanställa och bygga din fil.
Få det att köra
Vanligtvis behöver du inte installera ytterligare programvara på din dator för att köra C-skript. Öppna ett terminalfönster (eller kommandotolk om du kör Windows) och navigera till katalogen som du har sparat skriptet i.
Hur du sammanställer och kör din fil varierar från system till system:
- Windows-användare: Gör din fil körbar genom att skriva cl hello.c och trycka på enter. Detta skapar hello.exe i samma mapp, som du kan köra genom att skriva hej .
- Linux- och macOS-användare: Skriv gcc -o hallo hallo.c och tryck på enter för att göra det körbart och kör det genom att skriva ./hello .
Oavsett vilken metod du använder, kör ditt skript bör visa dig detta:
Om det inte fungerade på Windows, se till att du kör kommandotolken i administratörsläge. För macOS kan du behöva installera Xcode från App store och följ dessa steg från StackOverflow.
Låt oss nu titta på programmet rad för rad för att se hur det fungerar och förbättra det!
Under huven: Förstå C-språket
preprocessorer
Skriptet du just skapade börjar med att ett bibliotek inkluderas.
#include
Den första raden i skriptet kallas en förbehandlare . Detta utförs innan resten av skriptet sammanställs. I detta fall berättar det för skriptet att använda biblioteket stdio.h . Det finns ett stort antal förbehandlare för olika uppgifter.
Stdio.h tar hand om att få input från programmets användare och skicka tillbaka information till dem.
/* this is a Hello World script in C */
Den här nästa raden är en kommentar. Strecket och stjärnan säger kompilatorn att ignorera allt mellan den och den slutande stjärnan och snedstreck. Även om detta kan verka meningslöst, är det en väsentlig vana att få lämna dig själv och andra tydliga anteckningar om vad din kod gör.
Huvudfunktionen
int main(void)
Varje C-program måste ha en huvudfunktion. Main är en funktion som returnerar ett heltal, betecknat med int . Fästarna efter main är för sina argument, men i det här fallet tar det inget, varför du använder det ogiltiga nyckelordet.
Du skriver koden som ska utföras mellan två lockiga hängslen.
{ printf("Hello, World! \n"); return 0; }
Inuti funktionen ringer du funktionen printf () . Precis som main () är printf en funktion. Skillnaden är att printf är en funktion i stdio- biblioteket som du inkluderade i början.
Printf skriver ut vad som helst i parenteserna, mellan citattecken, till konsolen. \ N är en flygsekvens som kallas newline och säger kompilatorn att hoppa till nästa rad i konsolen innan du fortsätter.
Observera att dessa rader slutar i semikolon, som kompilatorn använder för att dela en uppgift från nästa. Var uppmärksam på dessa semikolon - att missa dem är den första orsaken till att saker inte går rätt!
Slutligen återgår funktionen med siffran 0 och slutar programmet. Huvudfunktionen () måste alltid returnera ett heltal och returnera = 0; signalerar till datorn att processen var framgångsrik.
Att förstå varje steg i det här skriptet är en bra start på att lära sig både C-syntax och hur språket fungerar.
2. Skapa dina egna C-funktioner
Du kan skapa dina egna anpassade funktioner i C. Istället för att skriva ut Hello World i huvudfunktionen, skapa en ny funktion för att göra det åt dig.
void print_for_me() { printf("Hello, World! \n"); }
Låt oss bryta ner det här.
void är ett nyckelord som betyder att följande funktion inte returnerar någonting.
print_for_me () är namnet på funktionen, och de tomma parenteserna visar att det inte kräver argument för att fungera. Ett argument är all information som ska vidarebefordras till en funktion för att få den att fungera - senare lägger du till ett eget argument för att ändra utgången! Obs! Detta är inte samma sak som huvudfunktionen ovan som använde tomrum. Denna funktion kan inte ta argument, medan den här kan (men i detta fall inte behöver).
Kodblocket bör vara bekant för dig - det är bara utskriften från den ursprungliga huvudfunktionen.
Nu kan du ringa den här funktionen från din huvudfunktion.
int main(void) { print_for_me(); print_for_me(); return 0; }
Du kan se en fördel med att använda din egen funktion. I stället för att skriva printf (“Hej, världen! \ N”) varje gång kan du ringa funktionen två gånger.
Just nu verkar detta kanske inte så viktigt, men om din print_for_me-funktion innehöll många kodrader är det en fantastisk tidsbesparing att kunna ringa det så enkelt!
Detta är en grundläggande idé om programmering du kommer att stöta på under hela din utbildning. Skriv din egen funktion en gång, snarare än att skriva samma stora bitar med kod om och om igen.
3. Använda funktionsprototyper i C
Prototyper är ett av de viktigaste sätten för nybörjare C skiljer sig från andra språk. Kort sagt, en prototyp är som en förhandsgranskning av en funktion som definieras senare. Om du skriver funktionen print_for_me () efter huvudfunktionen kan du få en varning när du sammanställer:
Varningsmeddelandet berättar att kompilatorn stötte på funktionen print_for_me innan den förklarades, så det kunde inte vara säkert att det skulle fungera korrekt när programmet körs.
Koden fungerar fortfarande, men varningen kan undvikas helt genom att använda en prototyp.
#include void print_for_me(); int main(void) { print_for_me(); print_for_me(); return 0; } void print_for_me() { printf("Hello, World! \n"); }
Genom att titta på hela programmet kan du se prototypen för print_for_me () som finns i början av programmet, men innehåller ingenting. Prototypfunktionen visar kompilatorn hur funktionen ska se ut och om den kräver argument eller inte.
Detta betyder att när du kallar den i huvudfunktionen, vet kompilatorn om den kallas korrekt och kan kasta en varning eller fel om det behövs. Detta kan vara något som verkar konstigt nu, men att veta om dem nu kommer att hjälpa i framtiden.
Detta program fungerar fortfarande utan en prototyp, men de är bra att använda. Outputen ser fortfarande densamma ut för tillfället, låter den ändras för att göra den mer personlig!
4. Överföra argument till C-funktioner
Ändra manus
För detta sista steg kommer du att be om användarens namn och spela in deras inmatning. Sedan använder du den i den funktion du skapade tidigare. I C är ord inte kända som strängar som på andra programmeringsspråk.
Istället är de en matris med enstaka karaktärer. Symbolen för en matris är [] och nyckelordet är char . Börja med att uppdatera din prototypfunktion i början av ditt skript:
#include void print_for_me(char name[]);
Nu kommer kompilatorn att veta att funktionen senare i skriptet tar en rad tecken som heter namn . Hittills existerar inte denna karaktär. Uppdatera din huvudfunktion för att skapa den och använd den för att lagra användarinmatningen:
int main(void) { char name[20]; printf("Enter name: "); scanf("%s", name); print_for_me(name); print_for_me("Everyone!"); return 0; }
Den första raden i huvudsak skapar en teckenuppsättning med 20 möjliga utrymmen som kallas namn. Därefter uppmanas användaren att ange sitt namn med printf. Nästa rad använder en ny funktion som heter scanf som tar nästa ord som användaren skriver.
"% S" berättar funktionen att den ska lagra data som en sträng och kallar det namn .
Ändra funktionen
När du ringer print_for_me kan du ta med namn i parenteserna. På nästa rad ser du att du också kan passera andra tecken så länge de är mellan citattecken. Båda gångerna överförs vad som finns i parenteserna till funktionen print_for_me.
Ändra det nu för att använda den nya informationen du ger den:
void print_for_me(char name[]) { printf("Hello, "); puts(name); }
Här kan du se att parenteserna har uppdaterats precis som prototypen i början av skriptet. Inuti skriver du fortfarande hej med printf. Här är en ny funktion. Detta är en mer avancerad version av printf.
Allt som ligger i parenteserna skrivs ut på konsolen och en ny linje ( \ n du använde tidigare) läggs till automatiskt.
Spara och kompilera din kod på samma sätt som du gjorde tidigare - notera att du kan namnge programmet något annat om du inte vill skriva över ditt tidigare program. Jag heter min hej2 :
Som ni borde ta, tar programmet inmatningen och använder den i funktionen, innan den skickar den förinställda hälsningen på "Alla!" Igen och ger två separata utgångar till samma funktion.
ABC-programmen för C-programmering
Detta program är enkelt, men några av koncepten i det är det inte. Mer avancerad C-kod måste skrivas mycket bra för att förhindra kraschar. Detta är anledningen till att många tycker att det är ett utmärkt språk att lära sig först eftersom det skapar goda vanor i nya programmerare.
Andra tycker att lära sig C ++ är en bättre idé eftersom det bygger på C samtidigt som det behåller sin lägre systemkontroll. (Det finns också Rust att tänka på - det är ett spännande programmeringsspråk som syntaktiskt liknar C ++.)
En sak är säker: språk som Python är mycket nybörjare. För ett gammalt språk används C fortfarande överallt, men Python kan vara framtidens språk 6 skäl varför Python är framtidens programmeringsspråk 6 skäl varför Python är framtidens programmeringsspråk Vill du lära dig eller utöka din programmeringsfärdighet ? Här är varför Python är det bästa programmeringsspråket att lära sig i år. Läs mer !
Utforska mer om: C, Coding Tutorials, Programmering.