Hjem Personlig finansiering Variabel kontroll for C programmering - dummies

Variabel kontroll for C programmering - dummies

Innholdsfortegnelse:

Video: Writing 2D Games in C using SDL by Thomas Lively 2024

Video: Writing 2D Games in C using SDL by Thomas Lively 2024
Anonim

I C programmering kan du rotere med variabelen i koden din ved å bytte den til en annen type, gi den et nytt navn helt eller stave en stave på variabel for å dekke dine behov, velvillige eller ikke.

Typecasting i vantro

Når er en float-variabel ikke en flyte? Når det er typecast i en int, selvfølgelig. Dette trikset er gjort mulig i C ved hjelp av typecast. For eksempel:

(int) gjeld

I den forrige linjen er floatvariabelen gjeld skrevet til en int-verdi. Int i parentes styrer kompilatoren til å behandle verdien av gjeld som et heltall.

Hvorfor vil noen gjøre det?

Fordi noen ganger krever en funksjon en bestemt variabeltype, og den typen er ikke tilgjengelig. I stedet for å konvertere og jonglere flere variable typer i ett program, kan du bare skrive inn en variabel i den typen du ønsker. Det er ikke et vanlig knep, men det er ofte nødvendig, som vist i det er ikke riktig.

DET ER IKKE RIGHT

#include int main () {int a, b; flyte c; printf ("Skriv inn den første verdien:"); scanf ("% d", & a); printf ("Skriv inn den andre verdien:"); scanf ("% d", og b); c = a / b; printf ("% d /% d =%. 2fn", a, b, c); returnere (0);}

Øvelse 1: Skriv kildekoden fra Det er ikke rett inn i redigeringsprogrammet. Bygg og løp.

Her er en prøvekjøring med inngang i fet skrift:

Skriv inn den første verdien: 3 Skriv inn den andre verdien: 2 3/2 = 1. 00

Selvfølgelig er det feil at 3 ÷ 2 på en eller annen måte skulle trenge ut til 1. 50. Hvis datamaskinen sier at den er 1. 00, må datamaskinen være riktig.

Eller kanskje er datamaskinen bare forvirret fordi i linje 12 i kildekoden er to int-verdier delt, og resultatet er tildelt en float. Det virker imidlertid ikke helt, fordi det å dele et helt tall med et heltall i C gir et heltall som resultat.

Verdien 1 er nærmeste heltallsverdi til 1. 50. Så selv om datamaskinen er feil, gjør det akkurat hva det ble fortalt å gjøre.

Øvelse 2: Endre kildekoden, endre Linje 12 for å lese

c = (flyte) a / (float) b;

Lagre endringen. Bygg og løp med de samme verdiene som bare vist. Her er den nye utgangen:

Skriv inn den første verdien: 3 Skriv inn den andre verdien: 2 3/2 = 1. 50

Bedre. Det er fordi du skriver inn variabler a og b i ligningen, slik at kompilatoren midlertidig kan behandle dem som flytende tall. Derfor er resultatet hva det skal være.

Slik lager du nye ting med typedef

Du kan komme inn i mange problemer med typedef-søkeordet.Det kan kaste normale C ord og operatører fra deres konsekvente selv til alle slags mischief.

PERILS OF TYPEDEF

#include typedef int stinky; stinkende main () {stinky a = 2; printf ("Alle vet det"); printf ("% d +% d =% dn", a, a, a + a); returnere (0);}

I farene på typedef definerer typedef-setningen på Linje 3 ordet stinky for å være det samme som søkeordet int. Hvor som helst du kan bruke int i koden, kan du bruke ordet stinky i stedet, som vist på linjer 5 og 7.

Øvelse 3: Bruk kildekoden fra farene typedef < for å lage et nytt program, som viser at en stinkende variabel type er den samme som en int. Bygg og løp. Gitt, eksemplet i The Perils of

typedef er ganske dumt; ingen seriøs programmør ville sette opp et virkelig program som det. Hvor typedef brukes er oftest i å definere strukturer. Typedef-setningen bidrar til å redusere chunkiness av den aktiviteten. Lag en struktur Den tradisjonelle måten viser hvordan nestet strukturoperasjon fungerer, gitt kunnskap om strukturer:

SKAPE EN STRUKTUR TRADISJONSVÅGEN

struktur id {char first [20]; char siste [20];}; struktur dato {int måned; int dag; int år;}; struct human {struct id navn; struct dato bursdag;};

Bruke

t ypedef til Definere en struktur viser hvordan deklarasjonene finner sted hvis du skulle skrive inn strukturen: BRUKE

TYPEDEF Å DEFINERE EN STRUKTUR > typedef struct id {char first [20]; char siste [20];} personlig; typedef struct dato {int måned; int dag; int år;} kalender; struktur menneskelig {personlig navn; kalender bursdag;}; I denne oppføringen skrives strukturen ID til navnet personlig. Det er ikke et variabelt navn; det er en typedef. Det er det samme som å si, "Alle referanser til struktur ID er nå det samme som navnet personlig. "

På samme måte skrives strukturdatoen til kalender. Til slutt, i deklarasjonen av strukturen menneske, brukes typedef-navnene i stedet for de mer komplekse strukturdefinisjonene.

EN NESTED STRUCTURE

#include # include int main () {struct dato {int måned; int dag; int år;}; struktur menneskelig {karnavn [45]; struct dato bursdag;}; struktur menneskelig president; Strcpy (president. navn, "George Washington"); president. fødselsdag. måned = 2; president. fødselsdag. dag = 22; president. fødselsdag. år = 1732; printf ("% s ble født på% d /% d /% dn", president. navn, president. bursdag. måned, president. bursdag. dag, president. bursdag. returnere (0);}

Øvelse 4

:

Erstatt navn medlemmet i den menneskelige strukturen i en nestet struktur med en nestet struktur. Navngi den strukturen ID og ha den inneholder to medlemmer, char arrays, først og sist, for å lagre en persons for- og etternavn. Hvis du gjør alt riktig, vil referansen til presidentens navn være variablene president. Navn. første

og president. Navn. siste . Pass på å tilordne verdier til disse variablene i koden din og vis resultatene. Øvelse 5 :

Endre kildekoden fra prosjektet du oppretter i øvelse 4 for å bruke typedef, som vist i Bruke t ypedef for å definere en struktur. Bygg og løp. Det kan hevdes at bruk av typedef ikke gjør koden din tydeligere enn du bare hadde brukt gode variabelnavn og godt formatert tekst. For eksempel kan du ikke bruke typedef bare fordi du ikke vil måtte huske hva du har definert. Men du vil støte på annen kode som bruker typedef. Ikke la det freak deg ut. Den sanne fordelen ved å bruke typedef med en struktur er muligens at det sparer deg for å skrive ordstrukturen for mange ganger.

Variabel kontroll for C programmering - dummies

Redaktørens valg

Speil Lockup (MUP) på Nikon D7100-dummies

Speil Lockup (MUP) på Nikon D7100-dummies

En komponent i det optiske systemet til din Nikon D7100 kamera er et speil som beveger seg hver gang du trykker på lukkerknappen. Den lille vibrasjonen som følge av speilets handling kan føre til svak utryddelse av bildet når du bruker en veldig langsom lukkerhastighet, skyter med en lang teleobjektiv, ...

Opptaksmuligheter på Nikon D5300 - dummies

Opptaksmuligheter på Nikon D5300 - dummies

Du kan styre noen få aspekter av din filmoppgave på din Nikon D5300. Du kan manipulere videoen din for å skape en rekke effekter. Følgende liste går gjennom disse alternativene: Eksponeringsmodus: Du kan ta opp filmer i hvilken som helst eksponeringsmodus (Auto, Scenemodus, Effektmodus, P, M, og så videre). Som med fortsatt ...

Hvordan man manipulerer eksponering og kontroll på Nikon D5600-dummies

Hvordan man manipulerer eksponering og kontroll på Nikon D5600-dummies

Følgende retusjonsverktøy på din Nikon D5600 kamerajustering eksponering og farge: D-Lighting, Quick Retouch, Filter Effects og Monochrome. Selv om disse verktøyene ikke får deg til å velge ett kamera over en annen, hvis du allerede har en Nikon D5600, er de tilgjengelige, så du kan også lære å bruke dem! D-Lighting: Active D-Lighting ...

Redaktørens valg

DOs og DON'Ts of Fantasy Basketball Draft Picks - dummies

DOs og DON'Ts of Fantasy Basketball Draft Picks - dummies

Hvis du vurderer bli med i en fantasy basketball liga, må du ta hensyn til følgende DOs og DON'Ts før du vurderer spillerne du vil utarbeide på laget ditt. Kreditt: © iStockphoto. com / IS_ImageSource Fantasy basketball draft pick DOS I de fleste fantasy basketball ligaer bestemmer kommisjonen (personen som setter opp ligaen) bestillingen i ...

Linjene og dimensjonene til en basketballbane - dummies

Linjene og dimensjonene til en basketballbane - dummies

En basketballbane har symmetri; Den ene halvdelen av retten er et speilbilde av den andre. Hele basketballbanen (se figur 1) er 94 fot med 50 fot. På hver halvplass viser malte linjer fritt korsbanen og sirkelen, samt trepunktsbuen, hvis avstand fra kurven varierer basert ...

Kjøp av gratis agenter i fantasy fotball - dummies

Kjøp av gratis agenter i fantasy fotball - dummies

I løpet av fantasy fotball sesongen, spillere som ikke blir utarbeidet bli gratis agenter - spillere tilgjengelig for enhver ligamatch villig til å slippe en eid spiller. Bruk gratis agentbassenget til å erstatte en skadet spiller eller noen som bare ikke lever opp til dine forventninger. Bruk disse tipsene for å finne en gratis agent for å ...

Redaktørens valg

Grunnleggende for din iOS-app - dummies

Grunnleggende for din iOS-app - dummies

Heldigvis mesteparten av det du trenger å gjøre så langt som iOS animasjon er opptatt er allerede bygd inn i rammen. Noen visningsegenskaper kan animeres, noe som betyr at du bare må fortelle visningen hvor du skal begynne og hvor du skal avslutte flyttingen, og noen få andre valgfrie parametere, og du er ferdig. ...

Montering av verktøylinjen for Android App Development - dummies

Montering av verktøylinjen for Android App Development - dummies

Når du vet at du er klar til være en Android-utvikler, ta tak i datamaskinen din og få sprekker på å installere verktøyene og rammene som er nødvendige for å bygge ditt første blockbuster-program. Linux-kjernen Android ble opprettet på toppen av åpen kildekode Linux-kjernen. Android-teamet valgte å bruke denne kjernen fordi den ga bevist ...

Grunnleggende om Cocoa Touch i iOS Apps - dummies

Grunnleggende om Cocoa Touch i iOS Apps - dummies

Cocoa Touch-laget inneholder det meste av objektet -orientert utvikler-vendt rammer for å bygge iOS applikasjoner. Det er ditt eneste utgangspunkt for app-utvikling. Apple-guiderne oppfordrer deg til å undersøke teknologiene i dette laget for å se om de oppfyller dine behov, før du ser på de andre lagene. Med andre ord, Apple har til hensikt å ...