fagforeninger i c

, en union, er en særlig datatype, der er til rådighed i c, som gør det muligt at lagre forskellige datatyper i samme hukommelse placering.kan du definere et eu med mange medlemmer, men kun et medlem kan indeholde en værdi på et givet tidspunkt.fagforeninger, giver en effektiv måde at bruge samme hukommelse sted til flere formål.,,, der fastlægger en eu -, for at fastlægge en union, du skal bruge, eu - erklæring på samme måde, som du gjorde, selv om en struktur.eu 's erklæring defineres en ny datatype med mere end et medlem af dit program.formatet for eu - erklæring er følgende −,, union [eu - mærke] {medlem definition; medlem af definitionen;...medlemsstaternes definition;} [en eller flere eu - variabler];,,, eu - mærke, er fakultativ, og hvert medlem definition er en almindelig variabel definition, som f.eks. int, eller flyde f; eller nogen anden gyldig variabel definition.ved afslutningen af eu 's definition, før den endelige semikolon, kan de angive en eller flere eu - variabler, men det er fakultativ.her er den måde, man vil definere en eu - type, der hedder data har tre medlemmer i, f og str −,, eu - data (int i flyde f; char str [20]} data, nu en variabel af data, type kan opbevares et heltal, et flydende - komma - nummer eller en række tegn.det betyder, at en enkelt variabel, dvs. samme hukommelse placering, kan benyttes til at oplagre flere typer af data.du kan bruge en indbygget eller brugerdefinerede datatyper i en union, der bygger på jeres krav.,, hukommelsen er besat af en union vil være stor nok til at rumme de største medlem af unionen.f.eks. i ovenstående eksempel data type vil få 20 bytes hukommelse rum, fordi det er den maksimale afstand, som kan benyttes af en tegnstreng.følgende eksempel viser de samlede hukommelses størrelse er besat af ovennævnte eu - −,,&#omfatter < stdio. h >&#omfatter < snor. h > eu - data (int i flyde f; char str [20]}; int vigtigste () (eu - data data printf ("hukommelses størrelse er besat af data:% d) n", 7 (data) tilbage, 0;}, når ovennævnte adfærdskodeks er udarbejdet og gennemført, giver følgende resultat: minus;,, hukommelses størrelse er besat af data: 20, adgang til eu - medlemmer, adgang til ethvert medlem af et eu, der bruger vi, medlem adgang operatør (.).den pågældende operatørs kodes som en periode mellem eu - variabel og eu - medlem, som vi ønsker at få adgang til.vil du bruge nøgleordet, union at definere variablerne i eu - type.The following example shows how to use unions in a program −, , #include <stdio.h> #include <string.h> union Data { int i; float f; char str[20]; }; int main( ) { union Data data; data.i = 10; data.f = 220.5; strcpy( data.str, "C Programming"); printf( "data.i : %d\ ", data.i); printf( "data.f : %f\ ", data.f); printf( "data.str : %s\ ", data.str); return 0; } , ,When the above code is compiled and executed, it produces the following result −, , data.i : 1917853763 data.f : 4122360580327794860452759994368.000000 data.str : C Programming , ,Here, we can see that the values of ,i, and ,f, members of union got corrupted because the final value assigned to the variable has occupied the memory location and this is the reason that the value of ,str, member is getting printed very well., ,Now let's look into the same example once again where we will use one variable at a time which is the main purpose of having unions −, , #include <stdio.h> #include <string.h> union Data { int i; float f; char str[20]; }; int main( ) { union Data data; data.i = 10; printf( "data.i : %d\ ", data.i); data.f = 220.5; printf( "data.f : %f\ ", data.f); strcpy( data.str, "C Programming"); printf( "data.str : %s\ ", data.str); return 0; } , ,When the above code is compiled and executed, it produces than efter resultat −,, data. i: 10 data. f: 220.500000 data.str: programmering, her, alle medlemmer bliver trykt meget godt, fordi en enkelt anvendes på et tidspunkt,.,,



Previous:
Next Page: