Некоторые отличия использования typedef в C и C++:
- Работа с тегами структур и перечислений. 2 В C для обращения к структуре необходимо использовать ключевое слово struct, в C++ можно ссылаться на структуру только по тегу (если его имя не вызывает неоднозначности). 2
- Требования к именам typedef. 2 В C++ typedef с таким же именем, как и тег структуры или перечисления, должен ссылаться на один и тот же тип структуры или перечисления. 2 В C таких требований нет. 2
- Работа с шаблонами. 5 Механизм typedef не работает с шаблонами, но в C++11 есть синтаксис, позволяющий создавать шаблоны-синонимы. 5
В целом typedef в C и C++ используется для создания дополнительных имён (синонимов) для других типов данных, а не для создания новых типов. 15