, biz varsa: C dilinde
typedef int a[100];
typedef int b[200];
Sonra türleri a ve b eşdeğerdir? Bildiğim kadarıyla C, isim eşdeğeri, 'u kullanıyor ama ben çok kafam karıştı.
, biz varsa: C dilinde
typedef int a[100];
typedef int b[200];
Sonra türleri a ve b eşdeğerdir? Bildiğim kadarıyla C, isim eşdeğeri, 'u kullanıyor ama ben çok kafam karıştı.
Örneğinizde a
, int[100]
ve b
türündeki takma addır ve int[200]
türünde bir diğer addır. Bu iki tür, bir dizinin büyüklüğü türünün bir parçası olduğu ve farklı boyutların farklı türler anlamına geldiğinden eşdeğer değildir. İkinci satır, olsaydı
typedef int b[100];
, a
ve b
eşdeğer olacaktır.
olarak bildiğim kadarıyla C iki yapı (veya birlik) halinde türleri tam olarak sahip A ve B, etiketlediğinizi adı eşdeğerlik
Yapılar ve sendikalar sözde anlamda yazıldığında kullanır Aynı vücut, hala farklı türler olarak kabul edilir. Bu nedenle, bir değişken struct A
türüne sahipse, önce onu dönüştürmeden struct B
atayın.
Bu, diğer adlar olan typedef
s için doğru değil. Yani, typedef X a; typedef X b;
iki typedef varsa, o zaman X
, a
ve b
birbirinden ayırt edilemez.
Çok teşekkür ederim. – DIMITRIOS
Her birinde bunlardan birini deneyin… –
@EugeneSh. Niye ya? * Aynı boyut * mutlaka * aynı tür * anlamına gelmez. typeof() '(desteklenen yerlerde) daha iyi bir fikir olurdu. – tofro
@tofro * Farklı * boyut * zorunlu olarak * farklı tür anlamına gelir. –