The Typedef and using Keywords in C and C++

The typedef or “type definition” is a keyword in C or C++ Programming language that allows declaring different names for 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.

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:

typedef type_name new_type_name;

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

typedef char ch; 
typedef unsigned long ulong; 
typedef unsigned int size_t;

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.

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.

Scroll to Top