Logo tr.removalsclassifieds.com

C'de Yapı ve Birleşim Arasındaki Fark

İçindekiler:

Anonim

C programlama dilinde önceden tanımlanmış veri türleri ve kullanıcı tanımlı veri türleri vardır. Kullanıcı tanımlı veri türlerinin örnekleri, C'deki yapılar ve birleşimlerdir.

Yapı ve Birlik'te, kullanıcılar tüm değişkenlere erişmek için farklı veri türleri ve üye işlevleri tanımlayabilir. Her ikisi de aynı söz dizimini takip etseler de aralarında büyük bir fark vardır.

C'de Yapıya Karşı Birlik

Yapıda toplam bellek boyutu, yapıdaki tüm veri türlerinin boyutlarının toplamına eşittir. Union'da toplam bellek alanı boyutu, birlikteki en büyük veri türünün boyutuna eşittir. Yapı ve birlik arasındaki en önemli farklardan biridir.

Örneğin

Yapı İşi

{

iç para;

Karakter ismi;

}s1;

Burada, tamsayı boyutu 1 bayt ve karakter boyutu 2 bayt olduğundan, ayrılan yapı için bellek boyutu 2+1 =3 bayt olacaktır. Dolayısıyla boyut 3 bayt olacaktır.

`Birlik Çalışması

{

iç para;

Karakter ismi;

}s1;

Birlikte, birleşimdeki maksimum veri türü boyutu 2 bayt, yani karakter veri türü olduğundan, ayrılan belleğin boyutu 2 bayt olacaktır.

C'de Yapı ve Birleşim Arasındaki Karşılaştırma Tablosu (Tablo Şeklinde)

Karşılaştırma için Parametre birlik Yapı
Anahtar kelime tanımı "Birlik" anahtar kelimesini kullanır “struct” Anahtar Kelimesini kullanır
Hafıza boyutu Boyut, en büyük boyutlu öğeye eşittir. Yapıdaki tüm öğelerin toplamına eşit boyut
Paylaşılan Bellek Tüm elementin hafızası farklı elementlerle paylaşılır Yapı elemanlarının ortak hafızası yoktur.
Öğe Erişimi Tek seferde yalnızca tek öğeye erişilir Herhangi bir zamanda herhangi bir sayıda öğeye erişilebilir
Örnek Birlik örneği{Veri Türleri ve üyeler}obj; yapı örneği{Veri Türleri ve üyeler}obj;

C'deki Yapı Nedir?

Yapı, kullanıcı tanımlı bir veri grubudur ve çeşitli veri türlerinin toplamıdır. Aşağıdaki örnek oldukça faydalı olacaktır. Bir programcının öğrenci, isim, sınıf, adres ve daha pek çok veriyi saklaması gerektiğini varsayalım.

Pekala, bu soruna yaklaşmanın iki yolu var, biri farklı veri türleri oluşturmak, diğeri ise bir yapı oluşturmak.

Burada bu durumda yapı avantajlı olacaktır çünkü değişkenleri ayrı ayrı oluşturursanız her öğrenci için birçok değişken oluşturmanız gerekir ve bu gerçekten tahribat olur. Bunun yerine, bir yapı tekrar tekrar kullanılabilir.

struct anahtar sözcüğü kullanılarak bir Yapı oluşturulabilir.

Örneğin

Yapı yapısı_adı{

Veri türü veri türü_adı;

Veri türü veri türü_adı;

Veri türü veri türü_adı;

Veri türü veri türü_adı;

};

Veri üyelerinden herhangi birine erişmek istiyorsanız, aşağıdaki gibi bir nesne oluşturmanız gerekir.

Yapı yapı_adı nesne_adı;

Object_name.datatype_name sözdizimi ile yapıdaki veri türüne erişebileceksiniz.

C'de Birlik nedir?

Yapı birleştirmeye benzer şekilde, C programlama dilinde başka bir kullanıcı tanımlı veri türüdür. Bir programcı bir birleşim tanımladığında, kullanıcı tanımlı bir veri tipi oluşturulur, ancak hafıza yeri yoktur.

Eh, eğer bellek ayırmak istiyorsanız, birlik içinde değişkenler yaratmanız gerekir. Union, herhangi bir programcının birden fazla veri tipine erişmesine izin vermeyen bir özelliğe sahiptir.

Bu nedenle, birlik içinde bir programcı aynı anda bir veri üyesine erişebilir. Küçük bir örnek verelim.

sendika birliği_adı

{

Data_type Datatype_name;

Data_type Datatype_name;

Data_type Datatype_name;

Data_type Datatype_name;

};

Yukarıdaki örnekte, birliğin temel yapısı görüntülenir. Bir programcının birliği oluşturma şeklidir. Birleşimdeki herhangi bir veri türüne erişmek istiyorsanız, onu kullanmanız gerekir. yapıya benzer bir operatör.

Birlik birlik_adı nesneadı; Yukarıdaki ifade ile nokta operatörünü kullanarak birleşimdeki herhangi bir veriye erişmenize yardımcı olacak nesneyi oluşturabilirsiniz.

C'de Yapı ve Birlik Arasındaki Temel Farklılıklar

  1. Yapı, farklı türlerdeki veri türlerini depolayan kullanıcı tanımlı bir veri türüdür. Ayrıca, veri türlerinin değerlerinin bir koleksiyonunu temsil etmek için kullanılır. Bir programcının bir birlik tanımlaması gerekiyorsa, programcının struct anahtar sözcüğünü kullanması gerekir. Bir birliğin ihtiyaç duyduğu halde, tanım için bir birlik anahtar kelimesi.
  2. Bir yapıda tüm veri türleri farklı bir konumda depolanır ve birden çok veri üyesine erişebilirsiniz. Sendikada ise tüm veri üyeleri aynı hafıza konumunu paylaşır ve aynı anda yalnızca tek bir veri üyesine erişilebilir.
  3. Yapıda, herhangi bir üyeyi başlatmak için, aynı anda birkaç üye başlatılabilir, ancak birleşme durumunda yalnızca ilk üye başlatılabilir.
  4. Yapının toplam boyutu, tüm veri üyelerinin boyutunun toplamına bağlıdır, oysa birleşim durumunda boyut, boyutu tüm veri üyelerinin boyutuna eşittir.
  5. Yapıda, her veri türünün farklı bellek tahsisi vardır, oysa birleşimde en büyük boyutlu veri üyesi için ayrılmış tek bir bellek vardır.

Çözüm

Yapı ve birleşimler, c programlamada kullanılan kullanıcı tanımlı veri türleridir. Yapı ve Birlikler, birden çok veri türünü depolamak için aynı konsepti paylaşır. Ve yapı ve birleşimdeki tüm veri türlerine bir nokta operatörü ile erişilir.

Yapılar ve birleşimler yalnızca boyut ve bellek tahsisi açısından farklılık gösterir, ancak kullanım durumları aynıdır. Her ikisi de kodun yeniden kullanılabilirliğini ve çok daha fazlasını artırır. Tek bir veri türü için çok sayıda değer depolamak istiyorsanız, yapı ve birleşim faydalı olacaktır.

Bir işçinin kaydını saklamanız gerektiğinde, yapı ve birliğin temel bir kullanım durumu olacaktır. Bir yapı veya birlik, tüm verileri yapı veya birlik içinde depolar ve ardından verileri depolayabilir veya bunlara erişebilirsiniz. Temel fark, tamamen bellek ayırma ve veri türü erişimi ile ilgilidir.

C'de Yapı ve Birleşim Arasındaki Fark