Typedef in C++
Typedef
Here, on this page, we will discuss typedef in c++. We can create alias names to the existing datatype name (predefined or user-defined) with the help of typedef
keyword. It doesn’t create a new datatype It just adds a new name for the existing type. Sometimes when we are using complex type names more frequently in our program, it is better to have a simple alternate name to increase the readability of the code
C++ typedef Syntax
typedef built_in_datatype user_defined_name;
Here existing name is the C++ datatype and user_defined_name is the alternate name given to existing_type
C++ program to demonstrate typedef
#include <iostream> using namespace std; int main() { typedef int trish; trish a = 1; //a is int type internally trish b = 2; //b is int type internally cout << "a: " << a << "\nb: " << b; return 0; }
a: 1 b: 2
Using typedef for struct types
Here we have used the student as an alias name for the struct name stuAlias, so where ever you create a variable with type student internally structure is created and that variable will have size same structure#include<iostream.h> using namespace std; // typedef struct created here typedef struct stuAlias { string name; int id; string klg; }student; int main() { student s1,s2; //2 variables of type student s1.id = 66; s1.name = "trishaank"; s1.klg = "MECS"; s2.id = 27; s2.klg = "KMIT"; s2.name = "Rishi"; cout << "Trishaank Details:\n"; cout << s1.name << " "<< s1.id << " "<< s1.klg << endl; cout << "\nRishi Details:\n"; cout << s2.name << " " << s2.id <<" "<< s2.klg; return 0; }
Output
Trishaank Details: trishaank 66 MECS Rishi Details: Rishi 27 KMIT
Nested typedef
Once you create an alias name for a datatype using a typedef, you can further be given another alias name with the previous alias name but finally, Compiler Replaces the with root alias- Here trish is replaced with int but whenever compiler encounters the name rish it initially replaces with trish then replaces with int
- Similarly, when vicky is encountered it is replaced with rish initially, as no datatype, is found with that name it replaces with trish and finally, trish is replaced with int
#include<iostream> using namespace std; int main() { typedef int trish; typedef trish rish; typedef rish vicky; trish a = 1; rish b = 2; vicky c = 3; //trish, rish, vicky treated as int internally cout << "a:" << a << "\t" << "b:" << b << "\t" << "c:" << c; return 0; }
Output
a:1 b:2 c:3
Note:
You can freely use the original name even if you have an alias name within the program#include <iostream> { typedef int trish; trish a = 1; // a is int type internally int b = 2; // you can use original datatype name }
Prime Course Trailer
Related Banners
Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription
Get over 200+ course One Subscription
Courses like AI/ML, Cloud Computing, Ethical Hacking, C, C++, Java, Python, DSA (All Languages), Competitive Coding (All Languages), TCS, Infosys, Wipro, Amazon, DBMS, SQL and others
30+ Companies are Hiring
Get Hiring Updates right in your inbox from PrepInsta
Login/Signup to comment