Struktura (jazyk C)

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 2. dubna 2021; kontroly vyžadují 3 úpravy .

V jazyce C je struktura ( struct) složený datový typ , který zapouzdřuje , aniž by skryl sadu hodnot různých typů. Pořadí, ve kterém jsou hodnoty umístěny v paměti, je určeno při definování typu a je zachováno po celou dobu životnosti objektů, což umožňuje nepřímý přístup (například prostřednictvím ukazatelů ).

Příklad deklarace struktury:

struct str_name { int člen_1 ; float member_2 ; char member_3 [ 256 ]; /* ... */ }; // deklarace struktury struct str_name struct0 ; // deklarace a inicializace struktury struct str_name struct1 = { 1 , 3.1415f , "doit" /* ... */ }; // deklarace struktury a inicializace pole // podporováno standardem od C99 struct str_name struct2 = {. člen_1 = 2 , . člen_2 = 3,1415f , . member_3 = "doit" /* ... */ };

Typ "struktura" v C umožňuje rekurzi , tedy přítomnost ukazatelů odkazujících na objekty právě této struktury ve svém složení. Struktury v C tedy kombinují funkčnost nejen n-tic a záznamů , ale také algebraických typů . Pro snadnou prezentaci se o struktuře říká, že je třída, jejíž výchozí pole jsou všechna veřejná [1] .

V C++ byl koncept struktury rozšířen na class , to znamená, že byla přidána možnost zahrnout do struktury funkce metody . Hlavní rozdíl je v tom, že podle „pravidla tří“ mají struktury vždy konstruktor , i když není explicitně definován ve zdrojovém kódu. Hovořit o „ strukturách v C++ “ tedy není správné. Totéž platí pro C# .

Jazyk Go používá struktury, které jsou svou funkčností blízké třídám (ke struktuře lze připojit metody), i když některé principy OOP chybí (například dědičnost )

Poznámky

  1. struktura (C++) . Reference jazyka C++ . msdn.microsoft.com. Získáno 16. listopadu 2017. Archivováno z originálu 16. listopadu 2017.