માળખું અને સંઘ વચ્ચેનો તફાવત.
બંને માળખું અને યુનિયન એ સી-ભાષામાં વપરાશકર્તા-વ્યાખ્યાયિત ડેટા પ્રકારો છે અને તે એકદમ સમાન છે, જો કે, તે હજુ પણ કેટલીક રીતે અલગ છે જેમ કે તેમના સભ્યોને મેમરીને કેવી રીતે ફાળવવામાં આવે છે. તેઓ સમાન રીતે જાહેર કરવામાં આવે છે પરંતુ તેઓ અલગ રીતે કાર્ય કરે છે. તેઓ વપરાશકર્તાને એક નામ હેઠળ વિવિધ ડેટા પ્રકારોનો સંયોજિત કરવાની મંજૂરી આપે છે. જ્યારે અલગ મેમરી સ્થાન દરેક સભ્ય માટે વપરાય છે જ્યારે માળખું વેરિયેબલ જાહેર કરે છે, ત્યારે યુનિયન વેરિયેબલના વિવિધ સભ્યો સમાન મેમરી સ્થાનને વહેંચે છે. ચાલો માળખા અને સંઘ વચ્ચેના તફાવતનું વિગતવાર વર્ણન કરીએ.
માળખું શું છે?
એક માળખું C માં માત્ર અન્ય વપરાશકર્તા-વ્યાખ્યાયિત ડેટા પ્રકાર છે જે વપરાશકર્તાને એક પ્રકારનાં પ્રકારોનાં પ્રકારોને એક બ્લોકમાં એક પ્રકારમાં ભેગા કરવા માટે પરવાનગી આપે છે. એક માળખું એકબીજા સાથે સંબંધિત બંને સરળ અને જટિલ ડેટા પ્રકારોને સમાવી શકે છે, જે અન્યથા, અર્થમાં ન બનાવશે. માળખામાંના દરેક સભ્યને તેની પોતાની મેમરી સ્થાન મળે છે જેથી તે કોઈપણ સમયે ઍક્સેસ કરી શકાય અને મેળવી શકાય.
એક માળખાનો ઉપયોગ થાય છે જ્યારે ઘણાં બધા ડેટાને એક ડિરેક્ટરીની જેમ જૂથબદ્ધ કરવાની જરૂર પડે છે જે એક પુસ્તક અથવા સરનામા પુસ્તિકાના ઘણા સભ્યો વિશેની માહિતી સંગ્રહિત કરે છે જે એક સંપર્ક - નામ, સરનામું, સંપર્ક નંબર, અને તેથી પર. દરેક સભ્યનું સરનામું ચડતા ક્રમમાં હશે જેનો અર્થ એ કે દરેક સભ્યની સ્મૃતિ અલગ ઓફસેટ મૂલ્યોથી શરૂ થશે. એક સભ્યના મૂલ્યને બદલીને અન્ય સભ્યો પર કોઈ અસર પડશે નહીં.
એક 'સ્ટ્રક્ટ' શબ્દનો ઉપયોગ એક જ નામ હેઠળ વિવિધ ડેટા પ્રકારોના માળખાને વ્યાખ્યાયિત કરવા માટે થાય છે. ઉદાહરણ તરીકે, જો તમે એક કર્મચારી ડેટાબેસ બનાવવા માંગો છો, તો તમારે કર્મચારીનું નામ, વય, ફોન અને પગાર વિગતો એક એકમ હેઠળ સંગ્રહિત કરવાની જરૂર પડશે. આ શબ્દ 'સ્ટ્રક્ટ' દ્વારા કરવામાં આવે છે, જે પછી કમ્પાઇલરને કહે છે કે માળખું જાહેર કરવામાં આવ્યું છે.
સ્ટ્રક્ટ કર્મચારી {
સ્ટ્રિંગનું નામ;
સ્ટ્રિંગ યુગ;
શબ્દમાળા ફોન;
શબ્દમાળા પગાર;
} emp1, emp2;
અહીં, 'કર્મચારી' એ માળખુંનું નામ છે અને 'વેપારી' એમપી 1 'અને' એમ્પ્પ 2 'એ' કર્મચારી 'પ્રકારનું સર્જન કર્યું છે. બંધ કૌંસ અર્ધવિરામ (;) દ્વારા અનુસરવામાં આવશ્યક છે
માળખાના સભ્યો બે પ્રકારની ઓપરેટરો દ્વારા ઍક્સેસ કરી શકાય છે:
- સભ્ય ઓપરેટર
- માળખું નિર્દેશક ઑપરેટર
યુનિયન શું છે?
તે સીમાં ઉપયોગમાં લેવાતું વિશિષ્ટ ડેટા પ્રકાર છે જે વપરાશકર્તાને સમાન મેમરી સ્થાનમાં જુદા જુદા પ્રકારના ડેટા પ્રકારોને સંગ્રહિત કરવાની મંજૂરી આપે છે. એ યુનિયન એ એક માળખું જેવું જ છે અને તે શબ્દ 'યુનિયન' શબ્દ સાથે કીવર્ડ 'સ્ટ્રક્ટ' ને બદલીને વ્યાખ્યાયિત કરી શકાય છે. સભ્યો યુનિયનમાં એકબીજાને યાદ કરાવે છે અને તે તેના તમામ સભ્યોને ફિટ કરવા માટે મોટું છે.
જયારે એક વેરિયેબલ યુનિયન સાથે સંકળાયેલું હોય, ત્યારે કમ્પાઇલર સૌથી મોટી મેમરીનું કદ ધ્યાનમાં લઈને મેમરીને ફાળવે છે, તેથી યુનિયનનું કદ સૌથી મોટા ડેટા મેમ્બરના કદ જેટલું છે.એક સંઘ ઘણા સભ્યો સાથે વ્યાખ્યાયિત કરી શકાય છે, પરંતુ માત્ર એક જ સભ્ય સમયના કોઈ પણ સમયે મૂલ્ય ધરાવે છે.
સરનામું યુનિયનના તમામ સભ્યો માટેનું સરનામું છે જેનો અર્થ છે કે દરેક સભ્ય સમાન ઓફસેટ મૂલ્યથી શરૂ થાય છે. અને એક સભ્યની કિંમતમાં ફેરફારથી અન્ય સભ્યોની કિંમતો પર અસર થશે. જ્યારે તમે કંઈક સંગ્રહિત કરવા માંગતા હો ત્યારે યુનિયનનો ઉપયોગ કરી શકાય છે જે ઘણી બધી ડેટા પ્રકારોમાંથી એક છે
સંઘ કર્મચારી {
ચાર નામ [32];
ઇન્ટેક વય;
ફ્લોટ પગાર;
};
અહીં મુખ્ય શબ્દ 'યુનિયન' એ સંઘને વ્યાખ્યાયિત કરે છે જે માળખાના ઘોષણા સમાન છે. આ વેરિયેબલ સ્ટ્રિંગ વેલ્યુ સ્ટોર કરી શકે છે જે 'કર્મચારીનું નામ' છે, પૂર્ણાંક મૂલ્ય જે 'કર્મચારીની ઉંમર' છે, અથવા ફ્લોટ જે 'કર્મચારીનું પગાર' દર્શાવે છે.
માળખું અને સંઘ વચ્ચેનો તફાવત
1 કીવર્ડ
કીવર્ડ 'સ્ટ્રક્ટ' નો ઉપયોગ માળખું વ્યાખ્યાયિત કરવા માટે થાય છે જ્યારે 'યુનિયન' કીવર્ડ યુનિયનને વ્યાખ્યાયિત કરવા માટે વપરાય છે.
2 મેમરી એલોકેશન
માળખામાં સભ્યો માટે અલગ મેમરી જગ્યા ફાળવવામાં આવી છે અને સભ્યોને અલગ અલગ સરનામાં છે કે જે મેમરીને વહેંચતા નથી. એક યુનિયન, બીજી બાજુ, તેના તમામ સભ્યો માટે સમાન મેમરી જગ્યા વહેંચે છે જેથી વહેંચાયેલ મેમરી સ્થાન ફાળવવામાં આવે છે.
3 સભ્ય પ્રવેશ
એક યુનિયન તેના બધા સભ્યો માટે એક જ સમયે એક જ મૂલ્યને સંગ્રહિત કરે છે જે એક સમયે ફક્ત એક જ સભ્યને ઍક્સેસિબિલિટી બનાવે છે. બહુવિધ મૂલ્યો માળખામાં સંગ્રહિત થઈ શકે છે, તેથી કોઈપણ સભ્ય મૂલ્યને કોઈપણ સમયે ઍક્સેસ કરી શકાય છે અને મેળવી શકાય છે.
4 કદ
માળખુંનું કદ તમામ સભ્યો અથવા તેના કદના સરવાળા જેટલું છે, જ્યારે કે યુનિયનનું કદ સૌથી મોટું કદ સભ્યનું કદ જેટલું છે.
5 પ્રારંભ
એક માળખામાં, કેટલાક સભ્યો એક જ સમયે પ્રારંભ થઈ શકે છે, જ્યારે એક યુનિયનમાં, ફક્ત પ્રથમ સભ્ય તેના પ્રકારનાં મૂલ્ય સાથે પ્રારંભ કરી શકાય છે.
5 કિંમત
એક માળખું તમામ સભ્યોના જુદા જુદા મૂલ્યો સંગ્રહિત કરી શકે છે અને એક સભ્યના મૂલ્યમાં ફેરફાર અન્ય સભ્યોના મૂલ્યો પર કોઈ અસર નહીં કરે. જ્યારે યુનિયન તેના બધા સભ્યો માટે સમાન મૂલ્યનું સંગ્રહ કરે છે અને એક સભ્યની કિંમતમાં ફેરફાર અન્ય મૂલ્ય પર અસર કરશે.
માળખું વિ. યુનિયન
માળખું | યુનિયન |
સ્ટ્રક્ટ કીવર્ડનો ઉપયોગ માળખું વ્યાખ્યાયિત કરવા માટે થાય છે. | યુનિયન કિવન્સનો ઉપયોગ યુનિયનને વ્યાખ્યાયિત કરવા માટે થાય છે. |
મેમ્બર માળખામાં વહેંચતા નથી. | સભ્યો યુનિયનમાં મેમરી સ્પેસ શેર કરે છે. |
કોઈપણ સભ્ય માળખું કોઈપણ સમયે પુનઃપ્રાપ્ત કરી શકાય છે. | યુનિયનમાં એક જ સમયે એક સભ્યનો ઉપયોગ કરી શકાય છે. |
માળખાના કેટલાક સભ્યો એક જ સમયે પ્રારંભ થઈ શકે છે. | ફક્ત પ્રથમ સભ્યનો પ્રારંભ કરી શકાય છે |
માળખુંનું કદ દરેક સભ્યના કદના સરવાળા જેટલું છે. | યુનિયનનું કદ સૌથી મોટું સભ્યનું કદ જેટલું છે |
એક સભ્યની મૂલ્ય બદલવી બીજા મૂલ્ય પર અસર કરશે નહીં. | એક સભ્યની કિંમતમાં ફેરફાર અન્ય સભ્ય મૂલ્યોને અસર કરશે. |
તમામ સભ્યો માટે જુદા જુદા મૂલ્યો સ્ટોર કરે છે | તમામ સભ્યો માટે સમાન મૂલ્ય સ્ટોર કરો |
સારાંશ
- બન્ને માળખું અને સંઘ એ સીમાં વપરાશકર્તા-વ્યાખ્યાયિત ડેટા પ્રકારો છે જે કાર્યરત છે અને વિભાવનાત્મક રીતે સમાન છે પરંતુ કેટલીક રીતે તે ખૂબ જ અલગ છે.
- બન્ને વિવિધ ડેટા પ્રકારોની ચલો ધરાવે છે પરંતુ તેઓ વેરીએબલોની જાહેરાત માટે અને સભ્યોને ઍક્સેસ કરવા માટે સમાન સિન્ટેક્સનો ઉપયોગ કરે છે. માળખું 'સ્ટ્રક્ટ' કીવર્ડ દ્વારા વ્યાખ્યાયિત કરવામાં આવે છે, ત્યારે યુનિયન શબ્દ 'યુનિયન' દ્વારા વ્યાખ્યાયિત થયેલ છે.
- દરેક સભ્યને એક માળખામાં અલગ મેમરી સ્થાન મળે છે, જ્યારે એક યુનિયનમાં, કુલ મેમરી સ્પેસ સૌથી મોટો કદ સભ્યની સમકક્ષ હોય છે. બધા સભ્યો યુનિયનમાં સમાન મેમરી જગ્યા વહેંચે છે.
- કોઈપણ અનુક્રમમાં કોઈપણ સભ્યને માળખામાં એક્સેસ કરી શકાય છે, જ્યારે કે યુનિયનમાં, તે વેરિએબલને મૂલ્યની ઍક્સેસ કરી શકાય છે જેનું તાજેતરમાં સંગ્રહ કરવામાં આવ્યું છે.