C'de Yapı ve Birlik Arasındaki Fark

Temel Fark - Yapı vs Birlik C cinsinden
 

Dizi, C dili tarafından desteklenen yapılandırılmış bir veridir. Bir dizi, aynı türdeki veri öğelerini depolamak için kullanılabilir. İnt işaretleri olarak bir ifade varsa [10]; işaretler on işaret saklayabilen bir dizidir ve hepsi tamsayıdır. Bazen farklı türdeki veri öğelerinin aynı bellek konumunda depolanması gerekir. Örneğin, bir çalışanın çalışan kimliği, adı, departmanı, yaşı vb. Olabilir. Bunlar farklı veri türlerine sahiptir. Bu nedenle, çeşitli veri öğelerini tek bir birim olarak saklamak için bir yönteme sahip olmak gerekir. C'deki yapılar ve Birlikler, farklı türlerdeki veri öğelerini aynı bellek konumunda depolamak için kullanılır. Bir yapı ve birleşme benzerdir, ancak çoğunlukla bellek ayırma nedeniyle farklılaşırlar. Bir yapı değişkenini saklamak için gereken bellek, tüm üyelerin bellek boyutunun toplamıdır. Birlik değişkenini saklamak için gereken bellek, birleşimdeki en büyük eleman için gereken bellektir. Yani temel fark C ile yapı ve birlik arasındaki ilişki Bu makalede, C ile yapı ve birlik arasındaki fark tartışılmaktadır..

İÇİNDEKİLER

1. Genel Bakış ve Temel Fark
2. C'deki Yapı Nedir?
3. C Birlik nedir
4. C'de Yapı ve Birlik Arasındaki Benzerlikler
5. Yan Yana Karşılaştırma - Tablo ve C Şeklinde Birlikteki Yapı
6. Özet

C'deki Yapı Nedir?

Bir yapı, C'de kullanıcı tanımlı bir veri türüdür. Farklı türdeki veri öğelerinin birleştirilmesine yardımcı olur. Bir yapı kayıtları temsil edebilir. Bir öğrenci student_id, student_name vb. Olabilir. Her bir değişkeni ayrı ayrı saklamak yerine, tüm bu farklı veri öğeleri bir yapı kullanılarak tek bir ünitede toplanabilir. 'Struct' anahtar sözcüğü kullanılarak tanımlanır. Bir yapıda, tüm üyelerine her zaman erişilebilir. Aşağıda, türetilmiş bir veri türü yapısı oluşturulur..

struct Student

intstudent_id;

char öğrenci_adı [20];

;

Yukarıdaki yapı için değişkenler aşağıdaki gibi beyan edilebilir.

struct Öğrenci öğrencisi1, öğrenci2, öğrenci3;

Yapının üyelerine erişmek için iki yöntem vardır. Yani üye işleci (.) Ve yapı işaretçi işleci (->) kullanılır. Üyelere yapı_değişken_adı kullanılarak erişilebilir. üye adı. Programcı öğrencinin 2 adına erişmek istiyorsa, ifadeyi printf (student2.student_namename) olarak yazabilir;

Aşağıdaki programa bir yapı ile bakın.

Şekil 01: Yapıları olan C programı

Yukarıdaki programa göre, Öğrenci bir yapıdır. Student_id ve student_name içeriyor. Ana programda yapı tipinin iki değişkeni bildirilmiştir. Bunlara öğrenci1 ve öğrenci2 denir. Student1'in kimliği, üye operatörü student1.student_id = 1 olarak kullanılarak 1 değerine atanır. “Ann” adı bir dizedir. Bu nedenle, strcpy dize kopyalama işlevi kullanılarak student_name üyesine kopyalanır. Kimlik ve isim benzer şekilde student2'ye atanır. Son olarak, bu değerler üye operatörü kullanılarak yazdırılır.

Bir yapı değişkenini saklamak için gereken bellek miktarı, tüm üyelerin bellek boyutunun toplamıdır. Student_id 4 bayt içerir ve student_name 20 bayt içerir (bir karakter için her biri bir bayt). Toplam 24 bayt, yapının gerektirdiği bellek boyutunun toplamıdır.

C'de Birlik Nedir?

Birleşme, C'de kullanıcı tanımlı bir veri türüdür. Farklı veri türlerini aynı bellek konumunda depolamaya yardımcı olur. Kitap, kitap_adı, fiyat vb. Özelliklere sahip olabilir. Bunların her biri için değişkenler oluşturmak yerine, bir birleşim kullanarak tüm farklı veri türlerini tek bir birime sıkıştırmak için bir birleşim kullanılabilir. 'Birlik' anahtar sözcüğü kullanılarak tanımlanır..

unionBook

karakter adı [20];

çift ​​fiyat;

;

Yukarıdaki birleşim için değişkenler aşağıdaki gibi beyan edilebilir.

birlik Kitap kitap1, kitap2;

Sendika üyelerine erişmek için iki yöntem vardır. Yani üye işleci (.) Ve yapı işaretçi işleci (->) kullanılır. Üyelere union_variable_name kullanılarak erişilebilir. üye adı. Programcı book1'in adına erişmek istiyorsa, ifadeyi printf (book1.name) olarak yazabilir;

Aşağıdaki programa sendika ile başvurun.

Şekil 02: Birleşim kullanan C programı

Yukarıdaki programa göre, Kitap bir birliktir. Book1, bir tür bir değişkendir. İsim ve fiyat atanmış değerlerdir. Birlik içinde, üyelerinden birine yalnızca bir kez erişilebilir ve diğer tüm üyelerin çöp değerleri olacaktır. Kimlik değeri düzgün yazdırılmıyor, ancak fiyat değeri düzgün yazdırılıyor.

Şekil 03: Sendika ile modifiye C programı

Yukarıdaki programa göre, Kitap bir birliktir. Book1 ve book2 birleşim tipi değişkenlerdir. İlk olarak, kitap1 adının değeri atanır ve yazdırılır. Ardından book2 adının değeri atanır ve yazdırılır. Tek seferde bir üye kullanıldığı için tüm üyeler doğru yazdırılır. Bir birliği depolamak için gereken bellek, birliğin en büyük öğesi için gereken bellektir. Yukarıdaki programda, ad değişkeni 20 bayttır. Fiyattan daha büyük. Yani, birlik için bellek ayırma 20 bayttır.

C'de Yapı ve Birlik Arasındaki Benzerlikler Nelerdir??

  • C'deki hem Yapı hem de Birlik kullanıcı tanımlı veri türleridir.
  • Hem Yapı hem de C'deki Birlik, farklı veri türlerini aynı bellek konumunda depolamak için kullanılabilir.

C'de Yapı ve Birlik Arasındaki Fark Nedir??

C'ye karşı Yapı vs Birlik

Yapı, C dilinde kullanıcı tanımlı bir veri tipidir ve farklı türlerdeki verilerin bir araya getirilmesini sağlar. Union, C dilinde kullanıcı tanımlı bir veri tipidir ve farklı türlerdeki verilerin bir araya getirilmesini sağlar.
 Ulaşılabilirlik
Bir yapıda, tüm üyelerine her zaman erişilebilir. Bir sendikada, üyelerinden birine aynı anda yalnızca bir tanesine erişilebilir ve diğer tüm üyeler çöp değerleri içerecektir.
Bellek Ayırma
Bir yapı değişkenini depolamak için gereken bellek, tüm üyelerin bellek boyutunun toplamıdır. Birlik değişkenini saklamak için gereken bellek, birleşimdeki en büyük eleman için gereken bellektir.
 Kelime
Bir yapıyı tanımlamak için kullanılan anahtar kelime "yapı" dır.. Birliği tanımlamak için kullanılan anahtar kelime 'sendika'dır..

özet - Yapı vs Birlik C cinsinden

Aynı türdeki veri öğelerini saklamak için bir dizi kullanılır. Bazen farklı türdeki veri öğelerini aynı bellek konumunda saklamak gerekir. C programlama dili bu görevi yerine getirmek için yapı ve birlik sağlar. Her ikisi de kullanıcı tanımlı veri türleridir. Bir yapı değişkenini saklamak için gereken bellek, tüm üyelerin bellek boyutunun toplamıdır. Bir birleşim değişkenini saklamak için gereken bellek, birleşimdeki en büyük öğe için gereken bellektir. Bu yapı ve birleşim arasındaki fark C.

Referans:

1. Nokta, Öğreticiler. “C.'deki Yapılar”, Tutorials Point, 15 Ağu. 2017. Buradan ulaşabilirsiniz 
2. Nokta, Öğreticiler. “C'deki Birlikler” , Öğreticiler Noktası, 15 Ağustos 2017. Buradan ulaşılabilir