Struct (C programming language) (original) (raw)

About DBpedia

C/C++ 프로그래밍 언어에서 구조화 된 데이터를 처리할 때 struct를 사용하는데 이를 구조체라고 한다. 구조화되었다는 말은 의미가 연결되어 한 덩어리로 처리하는 방식을 말한다. 관련된 컴퓨터 용어로 보면 record 그리고 Object와 비슷한 개념이다. 그리고 자료처리와 연관하여 데이터 구조와 연관이 되어 있다.

Property Value
dbo:abstract Struktura (anglicky struct) je v programovacím jazyce C, a z něj odvozených, deklarace složeného datového typu, která definuje skupinu proměnných v operační paměti, se kterými umožňuje pracovat jako s jedním celkem. K této struktuře se potom přistupuje prostřednictvím ukazatele na její adresu, nebo odkazem. Struktura může obsahovat libovolné množství existujících, jednoduchých i složených (komplexních) datových typů, takže jde o přirozený způsob zápisu pro záznamy, jako jsou smíšené typy dat v seznamech položek adresáře čtoucí pevný disk (délka souboru, název, rozšíření, fyzické (válec, disk, index hlavy) adresa, atd.), nebo jiný smíšený typ záznamu (jméno pacienta, adresa, telefon, číslo pojištění, váha atd.). Protože obsah struktury je uložený v souvislé paměti, musí být použit operátor sizeof, aby se zjistil počet bajtů potřebných pro uložení struktury určitého typu, stejně jako může být použit pro základní typy. Zarovnání jednotlivých oblastí v struktuře (s ohledem na zarovnání na délku slova počítače) je specifické pro implementaci a mohou zahrnovat různá zarovnání, i když moderní kompilátory obvykle podporují #pragma pack direktivu, která upravuje velikost v bajtech použitých pro zarovnání. V programovacím jazyce C++ je struktura příbuzná s třídou, ale existuje rozdíl ve výchozí viditelnosti: členy třídy jsou implicitně soukromé, kdežto členy struktury jsou ve výchozím nastavení veřejné. (cs) A struct in the C programming language (and many derivatives) is a composite data type (or record) declaration that defines a physically grouped list of variables under one name in a block of memory, allowing the different variables to be accessed via a single pointer or by the struct declared name which returns the same address. The struct data type can contain other data types so is used for mixed-data-type records such as a hard-drive directory entry (file length, name, extension, physical address, etc.), or other mixed-type records (name, address, telephone, balance, etc.). The C struct directly references a contiguous block of physical memory, usually delimited (sized) by word-length boundaries. It corresponds to the similarly named feature available in some assemblers for Intel processors. Being a block of contiguous memory, each field within a struct is located at a certain fixed offset from the start. Because the contents of a struct are stored in contiguous memory, the sizeof operator must be used to get the number of bytes needed to store a particular type of struct, just as it can be used for primitives. The alignment of particular fields in the struct (with respect to word boundaries) is implementation-specific and may include padding, although modern compilers typically support the #pragma pack directive, which changes the size in bytes used for alignment. In the C++ language, a struct is identical to a C++ class but has a different default visibility: class members are private by default, whereas struct members are public by default. (en) 構造体(こうぞうたい、英: structure)はプログラミング言語におけるデータ型の一つで、1つもしくは複数の値をまとめて格納できる型。それぞれのメンバー(フィールド)に名前が付いている点、またメンバーの型が異なっていてもよい点が配列と異なる。レコードという名前の類似機能として実装されている言語もある。 C/C++やC#などでstructとしてサポートされているほか、Visual Basic/VBAのユーザー定義型Typeや、PascalやAdaのrecord型も構造体に相当する。 クラスベースのオブジェクト指向言語では、抽象データ型としてのクラスが構造体の役割をも内包する。Cの文法を継承した言語ではstructキーワードを含むこともあるが、言語によってその役割や性質は異なる。 * C++のstructは、アクセシビリティの初期値がpublicであることを除いて、classと同等の機能を果たす。メンバー変数だけでなくメンバー関数を持つこともでき、派生型を定義することもできる。 * Javaでは、structキーワードは存在しない。すべてのユーザー定義型は参照型であり、構造体に相当するデータ構造はclassキーワードを使ってクラスとして実現する必要がある。Java 16ではイミュータブルな「レコードクラス」をサポートする。 * Kotlinでは、データを保持するためだけのクラスとして、data class構文により「データクラス」を定義することができる。データクラスはミュータブルだが、通常のクラス同様に参照型であることには変わりなく、変数の代入は参照のみのコピーとなる。そのため、すべてのプロパティをコピーした新たなオブジェクトを生成するには、コンパイラの推論によって暗黙的に自動定義されたcopy関数を使うなどする。サブクラスを定義することはできない。 * C#では、構造体の定義にstructキーワードを使用する。classキーワードにより定義されるクラスは「参照型」である一方、構造体は軽量なオブジェクト型を定義するための「値型」であり、クラスと比較していくつかの制約がある。 * VB.NETでは、構造体の定義にStructureキーワードを使用する。姉妹言語であるC#の構造体と類似の機能である。 * Swiftでは、構造体の定義にstructキーワードを使用する。C#と同様、classキーワードにより定義されるクラスは参照型である一方、構造体は値型である。SwiftのクラスはObjective-Cのクラスに対応する概念であり相互運用できるが、構造体は相互運用することができない。 オブジェクト指向言語でないCなどでオブジェクト指向プログラミングを模倣するために構造体を使うこともある。 (ja) C/C++ 프로그래밍 언어에서 구조화 된 데이터를 처리할 때 struct를 사용하는데 이를 구조체라고 한다. 구조화되었다는 말은 의미가 연결되어 한 덩어리로 처리하는 방식을 말한다. 관련된 컴퓨터 용어로 보면 record 그리고 Object와 비슷한 개념이다. 그리고 자료처리와 연관하여 데이터 구조와 연관이 되어 있다. (ko) Struktura lub rekord — to złożony typ danych występujący w wielu językach programowania, grupujący logicznie powiązane ze sobą dane różnego typu w jednym obszarze pamięci. Składowe struktury — pola — są etykietowane, tj. mają swoje unikatowe nazwy; poprzez podanie nazwy otrzymuje się dostęp do danego pola. Struktury są powszechnie stosowane w programowaniu, pozwalają bowiem w przejrzysty sposób opisywać złożone obiekty. Przykładem struktury może być informacja o książce, której pola będą zawierały: imię i nazwisko autora (typ łańcuchowy), tytuł (typ łańcuchowy), rok wydania (liczba całkowita), liczba stron (liczba całkowita), nazwa wydawnictwa, numer ISBN itp. W językach z silną typizacją, zanim zostanie stworzona zmienna typu rekordowego, musi zostać zdefiniowany odpowiedni typ opisujący strukturę rekordu; takie typy nazywa się typami rekordowymi lub po prostu rekordami. Podobną strukturą danych są krotki, w których pola nie są identyfikowane nazwą, lecz indeksem. W odróżnieniu jednak od krotek, dopuszcza się modyfikację pól struktury. (pl) В языке Си, структура (struct) — композитный тип данных, инкапсулирующий без сокрытия набор значений различных типов. Порядок размещения значений в памяти задаётся при определении типа и сохраняется на протяжении времени жизни объектов, что даёт возможность косвенного доступа (например, через указатели). Пример объявления структуры: struct str_name{ int member_1; float member_2; char member_3[256]; /* ... */};// объявление структурыstruct str_name struct0;// объявление и инициализация структурыstruct str_name struct1 = {1, 3.1415f, "doit" /* ... */};// объявление структуры и поимённая инициализация полей// поддерживается стандартом, начиная с C99struct str_name struct2 = {.member_1=2, .member_2=3.1415f, .member_3="doit" /* ... */}; Тип «структура» в Си допускает рекурсию, то есть наличие в своём составе указателей, ссылающихся на объекты этой самой структуры. Таким образом, структуры в Си объединяют в себе функциональность не только кортежей и записей, но и алгебраических типов.Для лёгкого представления говорят, что структура — это класс, у которого все поля по умолчанию public. В C++ понятие структуры было расширено до класса, то есть была добавлена возможность включения в структуру функций-методов. Главное отличие состоит в том, что в соответствии с «правилом трёх» структуры всегда имеют конструктор, даже если явное его определение в исходном коде отсутствует. Таким образом, говорить о «структурах в C++» некорректно. То же относится к C#. В языке Go используются структуры, по функциональности приближенные к классам (к структуре можно привязать методы), хотя и отсутствуют некоторые принципы ООП (например, наследование) (ru) 在C语言中,结构体(struct)指的是一种数据结构,是C语言中复合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。 (zh)
dbo:wikiPageID 992538 (xsd:integer)
dbo:wikiPageLength 7654 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID 1066966759 (xsd:integer)
dbo:wikiPageWikiLink dbr:Dereference_operator dbr:Visual_Basic_.NET dbr:Class_(computer_programming) dbr:Composite_data_type dbr:Passive_data_structure dbr:Pointer_(computer_programming) dbr:Static_memory_allocation dbr:C++ dbr:C_Sharp_(programming_language) dbr:ALGOL_68 dbr:Primitive_data_type dbr:Record_(computer_science) dbr:Assembly_language dbc:C_(programming_language) dbr:Access_modifiers dbr:Bit_field dbr:C++_classes dbr:C_programming_language dbr:Word_(computer_architecture) dbr:Union_type dbr:Flexible_array_member dbr:Sizeof dbr:Typedef
dbp:wikiPageUsesTemplate dbt:Reflist dbt:Lowercase
dct:subject dbc:C_(programming_language)
gold:hypernym dbr:Declaration
rdf:type yago:Abstraction100002137 yago:Arrangement105726596 yago:Cognition100023271 yago:DataStructure105728493 yago:PsychologicalFeature100023100 yago:Structure105726345 yago:WikicatDataStructures
rdfs:comment C/C++ 프로그래밍 언어에서 구조화 된 데이터를 처리할 때 struct를 사용하는데 이를 구조체라고 한다. 구조화되었다는 말은 의미가 연결되어 한 덩어리로 처리하는 방식을 말한다. 관련된 컴퓨터 용어로 보면 record 그리고 Object와 비슷한 개념이다. 그리고 자료처리와 연관하여 데이터 구조와 연관이 되어 있다. (ko) 在C语言中,结构体(struct)指的是一种数据结构,是C语言中复合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。 (zh) Struktura (anglicky struct) je v programovacím jazyce C, a z něj odvozených, deklarace složeného datového typu, která definuje skupinu proměnných v operační paměti, se kterými umožňuje pracovat jako s jedním celkem. V programovacím jazyce C++ je struktura příbuzná s třídou, ale existuje rozdíl ve výchozí viditelnosti: členy třídy jsou implicitně soukromé, kdežto členy struktury jsou ve výchozím nastavení veřejné. (cs) A struct in the C programming language (and many derivatives) is a composite data type (or record) declaration that defines a physically grouped list of variables under one name in a block of memory, allowing the different variables to be accessed via a single pointer or by the struct declared name which returns the same address. The struct data type can contain other data types so is used for mixed-data-type records such as a hard-drive directory entry (file length, name, extension, physical address, etc.), or other mixed-type records (name, address, telephone, balance, etc.). (en) Struktura lub rekord — to złożony typ danych występujący w wielu językach programowania, grupujący logicznie powiązane ze sobą dane różnego typu w jednym obszarze pamięci. Składowe struktury — pola — są etykietowane, tj. mają swoje unikatowe nazwy; poprzez podanie nazwy otrzymuje się dostęp do danego pola. W językach z silną typizacją, zanim zostanie stworzona zmienna typu rekordowego, musi zostać zdefiniowany odpowiedni typ opisujący strukturę rekordu; takie typy nazywa się typami rekordowymi lub po prostu rekordami. (pl) 構造体(こうぞうたい、英: structure)はプログラミング言語におけるデータ型の一つで、1つもしくは複数の値をまとめて格納できる型。それぞれのメンバー(フィールド)に名前が付いている点、またメンバーの型が異なっていてもよい点が配列と異なる。レコードという名前の類似機能として実装されている言語もある。 C/C++やC#などでstructとしてサポートされているほか、Visual Basic/VBAのユーザー定義型Typeや、PascalやAdaのrecord型も構造体に相当する。 クラスベースのオブジェクト指向言語では、抽象データ型としてのクラスが構造体の役割をも内包する。Cの文法を継承した言語ではstructキーワードを含むこともあるが、言語によってその役割や性質は異なる。 オブジェクト指向言語でないCなどでオブジェクト指向プログラミングを模倣するために構造体を使うこともある。 (ja) В языке Си, структура (struct) — композитный тип данных, инкапсулирующий без сокрытия набор значений различных типов. Порядок размещения значений в памяти задаётся при определении типа и сохраняется на протяжении времени жизни объектов, что даёт возможность косвенного доступа (например, через указатели). Пример объявления структуры: В языке Go используются структуры, по функциональности приближенные к классам (к структуре можно привязать методы), хотя и отсутствуют некоторые принципы ООП (например, наследование) (ru)
rdfs:label Struktura (programovací jazyk C) (cs) Struktur (Datentyp) (de) Struct (ko) 構造体 (ja) Struktura (programowanie) (pl) Struct (C programming language) (en) Структура (язык Си) (ru) 结构体 (C语言) (zh)
owl:sameAs freebase:Struct (C programming language) yago-res:Struct (C programming language) wikidata:Struct (C programming language) dbpedia-cs:Struct (C programming language) dbpedia-de:Struct (C programming language) dbpedia-fa:Struct (C programming language) dbpedia-ja:Struct (C programming language) dbpedia-ko:Struct (C programming language) dbpedia-no:Struct (C programming language) dbpedia-pl:Struct (C programming language) dbpedia-ru:Struct (C programming language) dbpedia-tr:Struct (C programming language) dbpedia-zh:Struct (C programming language) https://global.dbpedia.org/id/DZHc
prov:wasDerivedFrom wikipedia-en:Struct_(C_programming_language)?oldid=1066966759&ns=0
foaf:isPrimaryTopicOf wikipedia-en:Struct_(C_programming_language)
is dbo:wikiPageWikiLink of dbr:C_syntax dbr:Enumerated_type dbr:List_of_data_structures dbr:Basic4GL dbr:Perl dbr:Value_object dbr:Deep_Blue_C dbr:Comparison_of_code_generation_tools dbr:Context_(computing) dbr:Generic_programming dbr:Full_stop dbr:Glossary_of_computer_science dbr:Criticism_of_Java dbr:Composite_data_type dbr:Win32_Thread_Information_Block dbr:Tuple dbr:3D_GameStudio dbr:Object_composition dbr:Record_(computer_science) dbr:Return_statement dbr:Access_level dbr:Serialization dbr:Union_type dbr:Evaluation_strategy dbr:Flexible_array_member dbr:Sizeof dbr:Typedef dbr:Plain_Old_C++_Object
is foaf:primaryTopic of wikipedia-en:Struct_(C_programming_language)