Yapı ve Birlik Arasındaki Fark

Hem yapı hem de birleşim C Dili'nde kullanıcı tanımlı veri türleridir ve kavramsal olarak aynıdır, ancak yine de belleğin üyelerine tahsis edilme şekli gibi bazı yönlerden farklıdırlar. Benzer şekilde ilan edilirler fakat farklı işlev görürler. Kullanıcının farklı veri türlerini tek bir ad altında birleştirmesine izin verir. Yapı değişkenleri bildirilirken her üye için ayrı bellek konumu kullanılırken, birleşim değişkeninin farklı üyeleri aynı bellek konumunu paylaşır. Yapı ve birlik arasındaki farkı ayrıntılandıralım.

Yapı Nedir?

Bir yapı, kullanıcının farklı türdeki veri türlerini bir bellek bloğunda tek bir türde birleştirmesine izin veren, C'deki kullanıcı tanımlı başka bir veri türüdür. Bir yapı, birbiriyle ilişkili hem basit hem de karmaşık veri türlerini içerebilir, aksi takdirde anlamlı olmaz. Bir yapıdaki her üye, istediği zaman erişilebilmesi ve alınabilmesi için kendi bellek konumunu alır.

Bir yapı, bir kitapta birçok üye hakkındaki bilgileri depolayan bir dizin veya tek bir kişi hakkındaki tüm bilgileri (ad, adres, kişi numarası vb.) Depolayan bir adres defteri gibi gruplandırılması gerektiğinde kullanılır. Her üyenin adresi artan sırada olacak, yani her üyenin belleği farklı ofset değerlerinde başlayacaktır. Bir üyenin değerini değiştirmenin diğer üyeler üzerinde herhangi bir etkisi olmaz.

'Struct' anahtar sözcüğü, tek bir ad altında farklı veri türlerinin yapısını tanımlamak için kullanılır. Örneğin, bir çalışan veritabanı oluşturmak istiyorsanız, çalışanın adını, yaşını, telefonunu ve maaş ayrıntılarını tek bir varlık altında saklamanız gerekir. Bu, daha sonra derleyiciye bir yapının bildirildiğini söyleyen 'struct' anahtar sözcüğü ile yapılır..

yapı çalışanı

dize adı;

string age;

telli telefon;

ip maaşı;

emp1, emp2;

Burada 'çalışan' yapının adıdır ve 'çalışan' türünde iki 'emp1' ve 'emp2' değişkenleri oluşturulur. Kapanış parantezlerini noktalı virgül (;) izlemelidir..

Bir yapının üyelerine iki tür operatör tarafından erişilebilir:

  1. Üye operatörü
  2. Yapı işaretçisi operatörü

Birlik nedir?

C'de kullanılan ve kullanıcının farklı türde veri türlerini aynı bellek konumunda saklamasını sağlayan özel bir veri türüdür. Birlik bir yapıya oldukça benzerdir ve 'struct' anahtar kelimesi 'union' anahtar kelimesi ile değiştirilerek tanımlanabilir. Üyeler bir birlik içinde birbirlerinin anısını kaplar ve tüm üyelerine uyacak kadar büyüktür.

Bir değişken birleşmeyle ilişkilendirildiğinde, derleyici belleği en büyük belleğin boyutunu dikkate alarak ayırır, böylece birleşimin boyutu en büyük veri üyesinin boyutuna eşit olur. Birlik birçok üyeyle tanımlanabilir, ancak belirli bir zamanda yalnızca bir üye değeri içerir.

Adres, bir birliğin tüm üyeleri için aynıdır, yani her üye aynı ofset değerinde başlar. Ve bir üyenin değerini değiştirmek diğer üyelerin değerlerini etkileyecektir. Birleştirme, birkaç veri türünden birini saklamak istediğinizde kullanılabilir.

sendika çalışanı

karakter adı [32];

int yaş;

yüzer maaş;

;

Burada 'sendika' anahtar kelimesi yapının deklarasyonuna oldukça benzeyen birliği tanımlar. Değişken ya 'çalışanın adı' olan bir dize değeri, 'çalışanın yaşı' olan bir tam sayı değeri ya da 'çalışanın maaşını' temsil eden bir kayan değeri depolayabilir.

Yapı ve Birlik Arasındaki Fark

1. Anahtar kelime

'Struct' anahtar kelimesi bir yapıyı tanımlamak için kullanılırken 'union' anahtar kelimesi bir birliği tanımlamak için kullanılır.

2. Bellek Ayırma

Bir yapı içindeki üyeler için ayrı bellek alanı ayrılmıştır ve üyelerin belleği paylaşmayan farklı adresleri vardır. Diğer taraftan, sendika tüm üyeleri için aynı bellek alanını paylaşır, böylece paylaşılan bellek konumu tahsis edilir.

3. Üye Girişi

Birlik, tüm üyeleri için her seferinde yalnızca bir üyeye erişim sağlayan tek bir değeri depolar. Bir yapıda birden çok değer saklanabilir, böylece herhangi bir üye değerine her zaman erişilebilir ve erişilebilir.

4. Boyut

Bir yapının boyutu tüm üyelerin veya daha fazlasının toplamına eşitken, birliğin boyutu en büyük üyenin boyutuna eşittir.

5. Başlatma

Bir yapıda, birkaç üye aynı anda başlatılabilir, bir birliktelikte, türünün değeri ile yalnızca ilk üye başlatılabilir.

5. Değer

Bir yapı tüm üyelerin farklı değerlerini depolayabilir ve bir üyenin değerindeki değişikliğin diğer üyelerin değerleri üzerinde herhangi bir etkisi olmayacaktır. Birlik tüm üyeleri için aynı değeri depolarken, bir üyenin değerinin değişmesi diğer üyenin değerini etkiler.

Yapı ve Birlik

yapı Birlik
Struct anahtar sözcüğü bir yapıyı tanımlamak için kullanılır. Birlik tanımlamak için Birlik anahtar kelimesi kullanılır.
Üyeler bir yapıda bellek paylaşmaz. Üyeler sendikadaki bellek alanını paylaşır.
Herhangi bir üye bir yapıda herhangi bir zamanda alınabilir. Bir sendikada aynı anda yalnızca bir üyeye erişilebilir.
Bir yapının birkaç üyesi aynı anda başlatılabilir. Yalnızca ilk üye başlatılabilir.
Yapının boyutu, her üyenin boyutunun toplamına eşittir. Birliğin büyüklüğü en büyük üyenin büyüklüğüne eşittir.
Bir üyenin değerini değiştirmek başka bir üyenin değerini etkilemez. Bir üyenin değerindeki değişiklik diğer üye değerlerini etkiler.
Tüm üyeler için farklı değerler depolar. Tüm üyeler için aynı değeri depolar.

özet

  • Hem yapı hem de birleşim, C'de işlevsel ve kavramsal olarak aynı olan ancak bazı yönlerden oldukça farklı olan kullanıcı tanımlı veri türleridir..
  •  Her ikisi de farklı veri türlerinde değişkenler içerir, ancak değişkenlerin bildirilmesi ve üyelere erişilmesi için aynı sözdizimini kullanırlar. Bir yapı 'struct' anahtar kelimesi ile tanımlanırken, birleşme 'union' anahtar kelimesi ile tanımlanır.
  • Her üye bir yapıda ayrı bellek konumu alırken, bir birleşimde toplam bellek alanı en büyük boyutlu üyeye eşdeğerdir. Tüm üyeler bir birlik içinde aynı bellek alanını paylaşır.
  • Herhangi bir sekanstaki herhangi bir üyeye bir yapıda erişilebilir, oysa bir birliktelikte sadece bu değişkene değeri yakın zamanda depolanan erişilebilir.