The typedef or “type definition” is a keyword in C or C++ Programming language that allows declaring different names for data types such as int or char. It specifies that that the declaration is a typedef declaration rather than a variable or function declaration. In C/C++, any valid data type can be aliased so that it can be referred to with a different identifier.

Another syntax to define type definitions was introduced in the C++ language recently, which uses the keyword using.

The typedef syntax

C uses the following syntax to crate data type definitions. Same syntax is inherited by C++ that uses the typedef keyword:

Here are some of the examples of “type definitions” of existing data types into new types.

The using keyword syntax

The second syntax to define type aliases was introduced in the C++ 11. There is no difference between a type alias declaration and typedef declaration. So, all of the above type definitions can be defined as:

Benefits of using typedef

  • None the keywords i.e. typedef or using creates a new distinct data types instead create a synonyms of existing data types.
  • They are useful to write abstract programs by eliminating underlying data types they use.
  • Typedef names are scope restricted i.e. they are only available inside the function or class definitions where they are declared.
  • Typedef make it much easier for C/C++ programmer to make changes in the code. For example, a variable type can be easily changed from int to long when using typedef.
  • Type definition is used to reduce the confusion in data type names by creating familiar data type names.

For example, template type names in C++ can be very long and frustrating to type. This is more evident when your C++ program makes use of Standard Template Library or other template libraries.

If you have a map of strings to ints, you could declare it as:

Using a teypedef can help you define it in a more meaningful way as well as reduce the typing and coding mistake which you could do by using the full data type. So, you could write it as:

Now marks_list is quite easy to use and has clear meanings. Further, you can change the data type any time throughout your code. If you want marks to be a floating number or just a grade, you can easily change it as below with a single line of change in your code.

The Phoenix Project
Transform your IT and business with The Phoenix Project – the gripping story that redefines how we think about DevOps and innovation!
View on Amazon

In summary typedef helps you write C/C++ code easily and reduces the typing mistakes. It makes the code more clear and easy to modify in future.