Et array er en datastrukturert støttet av C-språk. En matrise kan brukes til å lagre dataelementer av samme type. Hvis det er en setning som int merker [10]; så markerer er en matrise som kan lagre ti karakterer og alle er heltall. Noen ganger er det nødvendig å lagre dataelementer av forskjellige typer i samme minneplass. For eksempel kan en ansatt ha en ansatt ID, navn, avdeling, alder etc. De har forskjellige datatyper. Derfor er det nødvendig å ha en metode for å lagre ulike dataelementer som en enkelt enhet. Strukturer og fagforeninger i C brukes til å lagre dataelementer av forskjellige typer i samme minneplass. En struktur og en union er like, men de skiller seg hovedsakelig på grunn av minneallokering. Minnet som kreves for å lagre en strukturvariabel er summasjonen av minnestørrelsen til alle medlemmer. Minnet som kreves for å lagre en forening variabel er minnet som kreves for det største elementet i foreningen. Det er nøkkelen forskjellen mellom struktur og forening i C. Denne artikkelen diskuterer forskjellen mellom struktur og fagforening i C.
1. Oversikt og nøkkelforskjell
2. Hva er struktur i C
3. Hva er Union i C
4. Likheter mellom struktur og union i C
5. Side ved side-sammenligning - Struktur vs Union i C i tabellform
6. Sammendrag
En struktur er en brukerdefinert datatype i C. Det hjelper å kombinere dataelementer av forskjellige typer. En struktur kan representere poster. En student kan ha student_id, studentnavn etc. I stedet for å lagre hver variabel separat, kan alle disse forskjellige datapostene være kompakte i en enkelt enhet ved hjelp av en struktur. Det er definert ved hjelp av søkeordet 'struct'. I en struktur kan alle medlemmene til enhver tid nås. Følgende skaper en avledet datatype struct Student.
struct student
intstudent_id;
char student_name [20];
;
For den ovennevnte strukturen kan variabler deklareres som følger.
struct Student student1, student2, student3;
Det er to metoder for å få tilgang til medlemmene av strukturen. Det er ved å bruke medlemsoperatøren (.) Og strukturpekeroperatøren (->). Medlemmene kan nås ved hjelp av structure_variable_name. Medlemsnavn. Hvis programmøren ønsker å få tilgang til studentenes navn 2, kan han skrive setningen som printf (student2.student_name);
Se underprogrammet med en struktur.
Figur 01: C-program med strukturer
I følge det ovennevnte programmet er student en struktur. Den inneholder student_id og studentnavn. To variabler av strukturstype er deklarert i hovedprogrammet. De kalles student1 og student2. Student1s ID er tildelt med verdi 1 ved bruk av medlemsoperatøren som student1.student_id = 1. Navnet "Ann" er en streng. Derfor kopieres det til student_name-medlemmet ved hjelp av strengkopifunksjonsstrcpy. ID og navn er tildelt student2 på en lignende måte. Til slutt blir disse verdiene skrevet ut med medlemsoperatør.
Mengden minne som kreves for å lagre en strukturvariabel er summen av minnestørrelsen til alle medlemmer. Student_id inneholder 4 byte og studentnavn inneholder 20 byte (en byte hver for et tegn). Totalt 24 byte er summen av minnestørrelse som kreves av strukturen.
En union er en brukerdefinert datatype i C. Den bidrar til å lagre forskjellige datatyper på samme minnested. En bok kan ha egenskaper som boknavn, pris etc. I stedet for å skape variabler for hver av dem, kan en union brukes til å komprimere alle forskjellige datatyper til en enhet ved hjelp av en union. Det er definert ved hjelp av søkeordet "union". Følgende skaper en avledet datafondsbok.
unionBook
karnavnet [20];
dobbel pris;
;
For ovennevnte fagforening kan variabler deklareres som følger.
fagforening bok bok1, book2;
Det er to metoder for å få tilgang til medlemmer av fagforeningen. Det er ved å bruke medlemsoperatøren (.) Og strukturpekeroperatøren (->). Medlemmene kan nås med union_variable_name. Medlemsnavn. Hvis programmereren ønsker å få tilgang til navnet på boken1, kan han skrive setningen som printf (book1.name);
Se underprogrammet med en fagforening.
Figur 02: C-program ved hjelp av fagforening
I følge det ovennevnte programmet er boken en union. Book1 er en variabel av typen union. Navnet og prisen er tilordnede verdier. I fagforening kan bare en av medlemmene få tilgang til gangen og alle andre medlemmer vil ha søppelverdier. Verdien av ID skrives ikke ut riktig, men prisverdien skrives ut på riktig måte.
Figur 03: Modifisert C-program med fagforening
I følge programmet ovenfor er Book en fagforening. Book1 og book2 er variabler for unionstype. Først er verdien for bok1-navnet tildelt og det skrives ut. Deretter er verdien for bok2-navnet tildelt og det skrives ut. Alle medlemmene skriver ut riktig fordi ett medlem blir brukt om gangen. Minnet som kreves for å lagre en forening er minnet som kreves for det største elementet i foreningen. I det ovennevnte programmet er navnvariabelen 20 byte. Det er større enn prisen. Så er minnetildelingen for foreningen 20 byte.
Struktur vs Union i C | |
Struktur er en brukerdefinert datatype i C-språk som tillater kombinering av data av forskjellige typer sammen. | Union er en brukerdefinert datatype i C-språk som gjør det mulig å kombinere data av forskjellige typer sammen. |
tilgjengelighet | |
I en struktur kan alle sine medlemmer til enhver tid nås. | I en union kan bare en av medlemmene nås på en gang, og alle andre medlemmer vil inneholde søppelverdier. |
Minneallokering | |
Minnet som kreves for å lagre en strukturvariabel er summasjonen av minnestørrelsen til alle medlemmer. | Minnet som kreves for å lagre en forening variabel er minnet som kreves for det største elementet i foreningen. |
søkeord | |
Søkeordet som brukes til å definere en struktur er 'struct'. | Søkeordet som brukes til å definere en union er "union". |
En matrise brukes til å lagre dataelementene av samme type. Noen ganger er det nødvendig å lagre dataelementer av forskjellige typer i samme minneplass. C programmeringsspråk gir struktur og fagforening for å oppnå denne oppgaven. Begge er brukerdefinerte datatyper. Minnet som kreves for å lagre en strukturvariabel er summasjonen av minnestørrelsen til alle medlemmer. Minnet som kreves for å lagre en forening variabel er minnet som kreves for det største elementet i foreningen. Dette er forskjellen mellom struktur og fagforening i C.
1.Point, opplæringsprogrammer. "Strukturer i C.", Tutorials Point, 15. august 2017. Tilgjengelig her
2.Point, opplæringsprogrammer. "Forbund i C." , Tutorials Point, 15. august 2017. Tilgjengelig her