Hjem Personlig finansiering Grunnleggende om globale variabler i C programmering - dummies

Grunnleggende om globale variabler i C programmering - dummies

Innholdsfortegnelse:

Video: Ruby on Rails by Leila Hofer 2024

Video: Ruby on Rails by Leila Hofer 2024
Anonim

Noen ganger i C-programmering må en variabel være som mobiltelefon service: tilgjengelig overalt. Variabelen kan også brukes av enhver funksjon når som helst. Denne typen variabel kan kalles en universell variabel. Det kan kalles en verdensomspennende variabel. Men i C er det referert til som en global variabel.

Slik bruker du globale variabler

Globale variabler løser bestemte problemer ved å gjøre den variable forklaringen universell. På den måten kan enhver funksjon hvor som helst i programmet få tilgang til variabelen. Det behøver ikke å bli sendt eller returnert fra en funksjon.

Kaste din alder rundt viser hvordan en global variabel er deklarert og brukt. De globale variablene alder og float påvirkes av begge funksjonene. De kan overføres til disse funksjonene, men begge verdiene kan ikke returneres. (C-funksjoner returnerer bare en verdi.) Derfor brukes den globale variabelen som en løsning.

TØLER DIN AGE OM RAPPORTERINGEN

#include void half (void); ugyldig to ganger (ugyldig); int alder; float føtter; int main () {printf ("Hvor gammel er du:"); scanf ("% d", og alder); printf ("Hvor høy er du (i føtter):"); scanf ("% f", og føtter); printf ("Du er% d år gammel og%. 1f fot høy. n", alder, føtter); halv(); to ganger(); printf ("Men du er egentlig ikke% d år gammel eller%. 1f fot høy. n", alder, føtter); returnere (0);} tomrom halvt (tomrom) {float a, h; a = (float) alder / 2. 0; printf ("Halv alder er%. 1f. n", a); h = fot / 2. 0; printf ("Halv din høyde er%. 1f. n", h);} void to ganger (void) {age * = 2; printf ("To ganger din alder er% d. n", alder); føtter * = 2; printf ("To ganger din høyde er%. 1fn", føtter);}

Linje 6 erklærer den globale int-variabelen alder og floatvariabelen føtter . Dette er globale variabler fordi de er erklært utenfor hvilken som helst funksjon, der oppe i #include, #define og prototyping land. Variablene blir da brukt i hver funksjon. Deres verdier kan nås gjennom hele koden. Selv når disse verdiene endres i funksjonen to ganger (), bruker hovedfunksjonen () -funksjonen de nye verdiene.

Vær oppmerksom på at to printf () setninger i hovedfunksjonen () -funksjonen bryter inn teksten i Tossing Your Age Around. Du trenger ikke å pakke ut disse utsagnene i en tekstredigerer; bare skriv dem ut alt på en enkelt linje.

Øvelse 1 : Skriv kildekoden for å kaste din alder rundt i redaktøren din, og opprett et nytt program. Bygg og løp.

Ikke vær lat om bruk av globale variabler! Hvis du kan sende en verdi til en funksjon, gjør det! Det er riktig. For mange indolente programmerere erklærer alle sine variabler globalt for å "løse problemet."Det er slurvet og feil.

Gode eksempler på globale variabler inkluderer informasjon som alle funksjoner i programmet burde vite, for eksempel brukerinformasjon, eller om du er online eller om tekst vises eller skjules. I så fall bør du vurdere å gjøre disse variablene globale i stedet.

Hvordan lage en global strukturvariabel

Et bedre eksempel på bruk av en global variabel, og en situasjon der globale variabler er helt nødvendige, er når man overfører en struktur til en funksjon. I så fall må du erklære strukturen som global, slik at alle funksjoner kan få tilgang til variabler av den aktuelle strukturtypen.

Ikke la massiv lengden av å passere en struktur til en funksjon skremme deg! De fleste av de "ekte" programmene du til slutt skriver, vil være langt lenger!

PASSER EN STRUKTUR TIL EN FUNKSJON

#include #include #include #define STØRRELSE 5 struct bot {int xpos; int ypos;}; struct bot initialiserer (struct bot b); int main () {struct bot roboter [STØRRELSE]; int x; STilfeldig ((unsigned) tid (NULL)); for (x = 0; x 

For å overføre en struktur til en funksjon, må strukturen deklareres globalt, som skjer mellom linjer 7 og 10. Det må skje selv før funksjonen er prototypisert, som foregår på linje 12.

Funksjonen initialiserer () går fra linjer 30 til 41. Strukturen sendes til funksjonen og returneres. Merk at strukturvariabelen må være fullt definert som argumentet. På linje 30 er funksjonen gitt variabelenavnet b inne i funksjonen.

Retursetningen på Linje 40 overfører strukturen tilbake til kallingsfunksjonen. Faktisk er initialiseringen () -funksjonen definert som en struktur-bottype funksjon. Det er typen av Verdien returnerer.

Øvelse 2 : Skru motet ditt til stikkstedet, og skriv alle de linjene i kildekoden fra å sende en struktur til en funksjon i redaktøren. Bygg og kjør.

Utgangen demonstrerer hvordan struktursammenstillingen ble passert (ett element av gangen) til en funksjon, endret i func og returneres deretter.

Grunnleggende om globale variabler i 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 å ...