Typedef is a keyword in C programming language that is used to give a new name to in built data type or user defined data types. New data type alias can later be used for variable declaration, typecasting etc just like a regular data type name.
For Example
typedef unsigned int POSITIVE_INT;
After above typedef statement POSITIVE_INT can be used as an alias of unsigned int.
POSITIVE_INT employeeCount;
Above declaration statement declares a variable “employeeCount” of type unsigned int using typedef alias POSITIVE_INT.
We can use typedef keyword to assign name to user define data types also like structures and unions.
Use of typedef to give new name to a structure
typedef struct EmployeeDetails{
char name[50];
int age;
int salary;
} Employee;
Now, we can declare variables of EmployeeDetails structure as:
Employee employee_one, employee_two;
We can also give name to a structure after it’s declaration
typedef struct EmployeeDetails Employee;
Use of typedef to give name to a Union
typedef union ProductDetails{
char name[50];
int price;
int rating;
} Product;
Now, we can declare variables of ProductDetails union
Product product_one, product_two;
We can also give name to a union after it’s declaration
typedef union ProductDetails Product;
C Program to show use of typedef keyword

#include <stdio.h>
#include <string.h>
#include <conio.h>
typedef unsigned long int ULI;
typedef struct EmployeeDetails{
char name[50];
int age;
ULI salary;
} Employee;
int main(){
Employee employee;
strcpy(employee.name, "Jack");
employee.age = 30;
employee.salary = 10000;
printf("Employee Name = %s\n", employee.name);
printf("Employee Age = %d\n", employee.age);
printf("Employee Salary = %ld\n", employee.salary);
getch();
return 0;
}
Program Output
Employee Name = Jack Employee Age = 30 Employee Salary = 10000