Estructura (lenguaje C)

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 2 de abril de 2021; las comprobaciones requieren 3 ediciones .

En lenguaje C , una estructura ( struct) es un tipo de dato compuesto que encapsula sin ocultar un conjunto de valores de diferentes tipos. El orden en que se colocan los valores en la memoria se especifica al definir el tipo y se conserva durante toda la vida útil de los objetos, lo que permite el acceso indirecto (por ejemplo, a través de punteros ).

Ejemplo de declaración de estructura:

estructura str_name { int miembro_1 ; flotar miembro_2 ; char miembro_3 [ 256 ]; /* ... */ }; // declaración de estructura struct str_name struct0 ; // declaración e inicialización de la estructura struct str_name struct1 = { 1 , 3.1415f , "doit" /* ... */ }; // declaración de estructura e inicialización de campo // compatible con el estándar desde C99 struct str_name struct2 = {. miembro_1 = 2 , . miembro_2 = 3.1415f , . miembro_3 = "hacer" /* ... */ };

El tipo "estructura" en C permite la recursión , es decir, la presencia en su composición de punteros que se refieren a objetos de esta misma estructura. Así, las estructuras en C combinan la funcionalidad no solo de tuplas y registros , sino también de tipos algebraicos . Para facilitar la presentación, se dice que una estructura es una clase cuyos campos predeterminados son todos públicos [1] .

En C++ se amplió el concepto de estructura a clase , es decir, se añadió la posibilidad de incluir funciones de método en la estructura . La principal diferencia es que, según la “regla de tres”, las estructuras siempre tienen un constructor , aunque no esté definido explícitamente en el código fuente. Por lo tanto, hablar de " estructuras en C++ " no es correcto. Lo mismo se aplica a C# .

El lenguaje Go usa estructuras que tienen una funcionalidad cercana a las clases (los métodos se pueden adjuntar a la estructura), aunque faltan algunos principios de programación orientada a objetos (por ejemplo, la herencia )

Notas

  1. estructura (C++) . Referencia del lenguaje C++ . msdn.microsoft.com. Consultado el 16 de noviembre de 2017. Archivado desde el original el 16 de noviembre de 2017.