Bu madde, öksüz maddedir; zira herhangi bir maddeden bu maddeye verilmiş bir bağlantı yoktur. (Eylül 2022) |
C programlama dilinde, struct (yapı), bir bellek bloğunda tek bir ad altında fiziksel olarak gruplandırılmış değişkenler listesini tanımlayan ve farklı değişkenlere tek bir işaretçi (pointer) aracılığıyla erişilmesine izin veren bileşik bir veri türüdür. Struct veri tipi, başka veri türlerini içerebilir. Bu nedenle dosya uzunluğu, ad, uzantı... veya diğer karma türdeki kayıtlar gibi karma veri türü kayıtları için kullanılır.
Struct, genellikle sözcük uzunluğu sınırlarıyla sınıflandırılmış -boyutlandırılmış- bitişik bir fiziksel bellek bloğuna başvurur. Intel işlemciler için bazı derleyicilerde bulunan benzer şekilde adlandırılmış özelliğe karşılık gelir. Bitişik bellek bloğu olarak, bir yapı içindeki her alan, başlangıçtan itibaren belirli ve sabit bir offsette bulunur.
Bir yapının içeriği bitişik bellekte depolandığından, belirli bir yapı türünü depolamak için gereken bayt sayısını elde etmek için sizeof operatörü, tıpkı ilkeller için kullanılabileceği gibi kullanılmalıdır. Modern derleyiciler tipik olarak hizalama için kullanılan bayt cinsinden boyutu değiştiren #pragma paketi yönergesini destekler.[1]
C++ dilinde bir struct, C++ sınıfıyla aynıdır. Farklı bir varsayılan görünürlüğe sahiptir. Sınıf üyeleri, varsayılan olarak özeldir. Fakat struct üyeleri varsayılan olarak geneldir.