Diferencia entre Struct y typedef struct en C++

Naila Saad Siddiqui 12 octubre 2023
  1. la palabra clave typedef en C/C++
  2. Diferencia entre struct y typedef struct en C++
Diferencia entre Struct y typedef struct en C++

Este pequeño artículo discutirá la palabra clave typedef en C++. También discutiremos la diferencia entre una estructura simple y una estructura typedef en C++.

la palabra clave typedef en C/C++

El typedef es una palabra clave en C/C++ utilizada para dar nuevos nombres o alias a los tipos de datos. Estos tipos de datos pueden ser primitivos (p. ej., int, float, etc.) o no primitivos o tipos de datos definidos por el usuario (p. ej., una clase, una estructura o una unión).

La palabra clave typedef se usa principalmente con tipos de datos definidos por el usuario que son algo complicados de usar en el programa o tienen nombres poco relacionados con el contexto del programa.

La sintaxis para declarar typedef para el tipo de datos int primitivo es la siguiente:

typedef int negative_int;

Ahora, siempre que debamos declarar una variable int en el programa, podemos hacerlo con el nombre negative_int así:

#include <iostream>
using namespace std;

int main() {
  cout << "Welcome to the typedef tutorial" << endl;
  typedef int negative_int;  // typedef keyword use
  negative_int num = -7;
  cout << "The number is: " << num << endl;
  return 0;
}

La salida de este código será:

Welcome to the typedef tutorial
The number is: -7

Diferencia entre struct y typedef struct en C++

No hay distinción entre struct y typedef struct en C++ ya que mientras otra declaración con el mismo nombre no oscurezca el nombre, todas las structs, uniones, enumeraciones y class las declaraciones se comportan como si estuvieran implícitamente definidas por tipos.

El lenguaje C usaba typedef struct porque, en C, cada vez que necesitas crear un objeto de struct, es obligatorio usar la palabra clave struct cada vez. Por lo tanto, typedef es útil donde puede usar struct solo por su nombre.

Artículo relacionado - C++ Struct