La declaración directa y la diferencia entre Struct y typedef struct en C
- Crear un proyecto C
- Estructura en lenguaje C
-
typedef
en C -
Estructura
typedef
en C - Reenviar Declaración en C
Este tutorial explicará el concepto de estructura
y el uso de la palabra clave typedef
. Veremos también el concepto de declaración anticipada
en C.
Comencemos por crear un proyecto C.
Crear un proyecto C
-
El primer paso es instalar un compilador. Pasos para descargar e instalar el compilador de C.
-
En el siguiente paso, cree un proyecto vacío en lenguaje C haciendo clic en
Archivo
en la barra de menú. -
Guarde el archivo antes de compilar.
-
Ejecuta el código. Haciendo clic en
compilar y ejecutar
. -
Aparecerá una pantalla de ejecución.
Estructura en lenguaje C
Struct se usa en lenguaje C para hacer el grupo de miembros de datos
relacionado. Los miembros de la estructura no tienen el mismo tipo de datos y el grupo contiene diferentes variables guardadas en un solo lugar.
Como sabemos, esa matriz tiene el mismo tipo de miembros, pero en una estructura, los miembros de datos pueden ser de diferentes tipos, como int
, float
y char
. El siguiente fragmento de código describirá cómo hacer una estructura en lenguaje C.
En este código hemos declarado la variable en el alcance local
en la función principal
escribiendo el nombre de la estructura
y su variable
.
Ejemplo de código:
#include <stdio.h>
struct Student { // Structure declaration
int rollno; // Member (int variable)
char gender; // Member (char variable)
}; // End the structure with a semicolon
int main() {
struct Student s1; // Making a variable of a struct
s1.rollno = 3; // assigning value to every member using dot operator
s1.gender = 'M';
printf("The name and gender of a student is %d and %c", s1.rollno, s1.gender);
}
Producción :
The name and gender of a student is 3 and M
Declararemos la variable en el ámbito global en el siguiente código.
Ejemplo de código:
#include <stdio.h>
struct Student { // Structure declaration
int rollno; // Member (int variable)
char gender; // Member (char variable)
} s1; // Declared a variable s1 before ending the struct with a semicolon
int main() {
s1.rollno = 3; // calling a member using a variable
s1.gender = 'M';
printf("The name and gender of a student is %d and %c", s1.rollno, s1.gender);
}
Producción :
The name and gender of a student is 3 and M
Nuevamente, esto dará el mismo resultado, pero en el fragmento de código anterior, hemos declarado la variable s1
globalmente. No tenemos que definir una estructura en la función main()
.
typedef
en C
typedef
se usa en el lenguaje C para renombrar nuestro tipo de datos existente con uno nuevo.
Sintaxis:
typedef<existing_name><alias_name>
Primero tenemos que escribir la palabra reservada
de typedef
, luego el nombre existente en lenguaje C, y el nombre que queremos asignar. Después de usar typedef
, usaremos alias_name
en todo el programa.
Código:
#include <stdio.h>
void main() {
typedef int integer; // assigning int a new name of the integer
integer a = 3; // variable is declared by integer
integer b = 4;
printf("The values of a and b are %d and %d", a,
b); // print value of a and b on the screen
}
Producción :
The values of a and b are 3 and 4
Estructura typedef
en C
Hemos visto que debemos escribir toda la definición de la estructura en la función main()
. En lugar de escribir struct student
cada vez, podemos reemplazar el tipo anterior usando typedef con un nuevo tipo.
Typedef
nos ayuda a crear nuestro tipo en lenguaje C.
Ejemplo de código:
#include <stdio.h> // including header file of input/output
#include <string.h> // including header file of string
typedef struct Books { // old type
char title[30]; // data members of the struct book
char author[30];
char subject[50];
int id;
} Book; // new type
void main() {
Book b1; // variable of a new type
strcpy(b1.title, "C Programming"); // copy string in title
strcpy(b1.author, "Robert Lafore"); // copy string in author
strcpy(b1.subject, "Typedef Struct in C"); // copy string in subject
b1.id = 564555; // assigning id to variable
printf("Book title is : %s\n", b1.title); // printing book title on screen
printf("Book author is : %s\n", b1.author);
printf("Book subject is : %s\n", b1.subject);
printf("Book id is : %d\n", b1.id);
}
Producción :
Book title is : C Programming
Book author is : Robert Lafore
Book subject is : Typedef Struct in C
Book id is : 564555
En el código anterior, hemos definido un nuevo tipo de estructura al final de la estructura antes del punto y coma. Luego, usamos ese nuevo tipo en la función main()
.
Este typedef
ha reducido el esfuerzo de definir struct cada vez en la función main()
para hacer una variable.
Reenviar Declaración en C
La declaración directa es una declaración que precede a una definición real de una estructura. La definición no está disponible, pero podemos hacer referencia al tipo declarado debido a la declaración directa, que es una declaración previa.
Este método se utiliza para definir y declarar una función. En lugar de definir una función encima de la función main()
, podemos declararla en la parte superior y definirla en la parte inferior, llamada declaración directa.
Ejemplo de código:
#include <stdio.h>
int add(int x, int y); // (prototype)function declaration
void main() {
int n1, n2, sum;
scanf("%d %d", &n1, &n2); // taking numbers from user
sum = add(n1, n2); // call to the add function
printf("The sum of n1 and n2 is %d ", sum); // display sum on the screen
}
int add(int x, int y) // function definition
{
int result;
result = x + y;
return result; // returning the result to the main function
}
El fragmento de código anterior muestra que hemos declarado un prototipo de función en la parte superior de la función main()
. Llamamos a la función add()
en main antes de definirla, pero funciona correctamente porque el prototipo ya ha sido definido.
Esto se debe a la declaración hacia adelante.
Producción :
4 5
The sum of n1 and n2 is 9