Tofauti Muhimu – Muundo dhidi ya Muungano katika C
Safu ni data iliyoundwa na C lugha. Mkusanyiko unaweza kutumika kuhifadhi vipengele vya data vya aina moja. Ikiwa kuna taarifa kama alama za int [10]; basi alama ni safu inayoweza kuhifadhi alama kumi na zote ni nambari kamili. Wakati mwingine inahitajika kuhifadhi vipengele vya data vya aina tofauti katika eneo moja la kumbukumbu. Kwa mfano, mfanyakazi anaweza kuwa na kitambulisho cha mfanyakazi, jina, idara, umri n.k. Ni za aina tofauti za data. Kwa hivyo, inahitajika kuwa na njia ya kuhifadhi vitu anuwai vya data kama kitengo kimoja. Miundo na Muungano katika C hutumika kuhifadhi vipengele vya data vya aina tofauti katika eneo moja la kumbukumbu. Muundo na muungano ni sawa lakini hutofautisha hasa kutokana na mgao wa kumbukumbu. Kumbukumbu inayohitajika kuhifadhi muundo tofauti ni muhtasari wa saizi ya kumbukumbu ya washiriki wote. Kumbukumbu inayohitajika ili kuhifadhi utofauti wa muungano ni kumbukumbu inayohitajika kwa kipengele kikubwa zaidi katika muungano. Hiyo ndiyo tofauti kuu kati ya muundo na muungano katika C. Makala haya yanajadili tofauti kati ya muundo na muungano katika C.
Muundo katika C ni nini?
Muundo ni aina ya data iliyobainishwa na mtumiaji katika C. Husaidia kuchanganya vipengee vya data vya aina tofauti. Muundo unaweza kuwakilisha kumbukumbu. Mwanafunzi anaweza kuwa na kitambulisho cha mwanafunzi, jina_la_mwanafunzi n.k. Badala ya kuhifadhi kila kigezo kivyake, vipengee hivi vyote tofauti vya data vinaweza kuunganishwa katika kitengo kimoja kwa kutumia muundo. Inafafanuliwa kwa kutumia neno kuu 'muundo'. Katika muundo, wanachama wake wote wanaweza kufikiwa wakati wowote. Ifuatayo huunda muundo wa aina ya data ya Mwanafunzi.
muundo Mwanafunzi {
kitambulisho_cha_mwanafunzi;
jina_la_mwanafunzi char[20];
};
Kwa muundo ulio hapo juu, vigeu vinaweza kutangazwa kama ifuatavyo.
muundo Mwanafunzi1, mwanafunzi2, mwanafunzi3;
Kuna mbinu mbili za kufikia washiriki wa muundo. Hiyo ni kwa kutumia operator mwanachama (.) na opereta pointer muundo (->). Wanachama wanaweza kufikiwa kwa kutumia structure_variable_name. jina la mwanachama. Ikiwa mtayarishaji programu anataka kufikia jina la mwanafunzi 2, basi anaweza kuandika taarifa kama printf(student2.student_namename);
Rejelea programu iliyo hapa chini yenye muundo.
Kielelezo 01: Mpango wa C wenye miundo
Kulingana na mpango ulio hapo juu, Mwanafunzi ni muundo. Ina kitambulisho cha mwanafunzi na jina_la_mwanafunzi. Vigezo viwili vya aina ya muundo vinatangazwa katika programu kuu. Wanaitwa mwanafunzi1 na mwanafunzi2. Kitambulisho cha mwanafunzi1 kimepewa thamani 1 kwa kutumia opereta mwanachama kama mwanafunzi1.student_id=1. Jina "Ann" ni kamba. Kwa hivyo, inakiliwa kwa mwanafunzi_name mwanachama kwa kutumia string copy strcpy. Kitambulisho na jina hupewa mwanafunzi2 kwa njia sawa. Hatimaye, thamani hizo huchapishwa kwa kutumia opereta mwanachama.
Kiasi cha kumbukumbu kinachohitajika ili kuhifadhi muundo tofauti ni jumla ya ukubwa wa kumbukumbu ya washiriki wote. Student_id ina baiti 4 na student_name ina byte 20 (baiti moja kwa kila herufi). Jumla ya baiti 24 ni jumla ya ukubwa wa kumbukumbu unaohitajika na muundo.
Muungano ni nini katika C?
Muungano ni aina ya data iliyobainishwa na mtumiaji katika C. Husaidia kuhifadhi aina tofauti za data katika eneo moja la kumbukumbu. Kitabu kinaweza kuwa na sifa kama vile book_name, bei n.k. Badala ya kuunda vigeu kwa kila kimoja, muungano unaweza kutumika kuunganisha aina zote tofauti za data kuwa kitengo kimoja kwa kutumia muungano. Inafafanuliwa kwa kutumia neno kuu ‘muungano’. Ifuatayo inaunda Kitabu cha muungano wa data.
Kitabu cha muungano{
jina char[20];
bei mbili;
};
Kwa muungano ulio hapo juu, vigeu vinaweza kutangazwa kama ifuatavyo.
kitabu cha muungano1, kitabu2;
Kuna mbinu mbili za kufikia wanachama wa muungano. Hiyo ni kwa kutumia operator mwanachama (.) na opereta pointer muundo (->). Wanachama wanaweza kufikiwa kwa kutumia union_variable_name. jina la mwanachama. Ikiwa mtayarishaji programu anataka kufikia jina la kitabu1, basi anaweza kuandika taarifa kama printf(book1.name);
Rejelea programu iliyo hapa chini na muungano.
Kielelezo 02: C mpango kwa kutumia muungano
Kulingana na mpango ulio hapo juu, Kitabu hiki ni muungano. Kitabu1 ni tofauti ya aina ya muungano. Jina na bei hupewa maadili. Katika muungano, mmoja tu wa wanachama wake anaweza kupatikana kwa wakati mmoja na wanachama wengine wote watakuwa na maadili ya takataka. Thamani ya kitambulisho haichapishi ipasavyo lakini thamani ya bei huchapishwa ipasavyo.
Kielelezo 03: Mpango wa C uliorekebishwa na muungano
Kulingana na mpango ulio hapo juu, Kitabu ni muungano. Kitabu1 na kitabu2 ni anuwai za aina za umoja. Kwanza, thamani ya jina la kitabu1 imepewa na inachapishwa. Kisha thamani ya jina la kitabu2 imepewa na inachapishwa. Wanachama wote huchapisha ipasavyo kwa sababu mwanachama mmoja anatumiwa kwa wakati mmoja. Kumbukumbu inayohitajika ili kuhifadhi muungano ni kumbukumbu inayohitajika kwa kipengele kikubwa zaidi cha muungano. Katika programu iliyo hapo juu, kutofautisha kwa jina ni ka 20. Ni kubwa kuliko bei. Kwa hivyo, mgao wa kumbukumbu kwa muungano ni baiti 20.
Je, Kuna Ufanano Gani Kati ya Muundo na Muungano katika C?
- Muundo na Muungano katika C ni aina za data zilizobainishwa na mtumiaji.
- Muundo na Muungano katika C zinaweza kutumika kuhifadhi aina tofauti za data katika eneo la kumbukumbu sawa.
Nini Tofauti Kati ya Muundo na Muungano katika C?
Muundo dhidi ya Muungano katika C |
|
Muundo ni aina ya data iliyobainishwa na mtumiaji katika lugha ya C ambayo inaruhusu kuchanganya data ya aina tofauti pamoja. | Umoja ni aina ya data iliyobainishwa na mtumiaji katika lugha ya C ambayo inaruhusu kuchanganya data ya aina tofauti pamoja. |
Ufikivu | |
Katika muundo, washiriki wake wote wanaweza kufikiwa wakati wowote. | Katika muungano, ni mwanachama mmoja tu ndiye anayeweza kufikiwa kwa wakati mmoja na wanachama wengine wote watakuwa na maadili ya takataka. |
Mgao wa Kumbukumbu | |
Kumbukumbu inayohitajika ili kuhifadhi muundo tofauti ni muhtasari wa saizi ya kumbukumbu ya washiriki wote. | Kumbukumbu inayohitajika ili kuhifadhi tofauti ya muungano ni kumbukumbu inayohitajika kwa kipengele kikubwa zaidi katika muungano. |
Neno kuu | |
Neno kuu linalotumika kufafanua muundo ni ‘muundo’. | Neno kuu linalotumika kufafanua muungano ni ‘muungano’. |
Muhtasari – Muundo dhidi ya Muungano katika C
Safu hutumika kuhifadhi vipengele vya data vya aina moja. Wakati mwingine ni muhimu kuhifadhi vipengele vya data vya aina tofauti katika eneo moja la kumbukumbu. Lugha ya programu C hutoa muundo na umoja ili kukamilisha kazi hii. Zote ni aina za data zilizoainishwa na mtumiaji. Kumbukumbu inayohitajika kuhifadhi muundo tofauti ni muhtasari wa saizi ya kumbukumbu ya washiriki wote. Kumbukumbu inayohitajika ili kuhifadhi tofauti ya muungano ni kumbukumbu inayohitajika kwa kipengele kikubwa zaidi katika muungano. Hii ndio tofauti kati ya muundo na muungano katika C.