Старайтесь не повторять typedef
в разных единицах перевода, если вы позже смените одну из них, вы в конечном итоге столкнетесь с кошмаром технического обслуживания, который будет преследовать все места, где вы определили один и тот же тип определения.
Мое простое правило: определите его там, где оно имеет смысл . Во многих случаях это будет вместе с некоторыми из связанных типов (возможно, с определением Vertex_t
) и использовать разумные имена для typedef, которые указывают, что это такое. Только если вы не знаете, что такое Vertex_t
или Vd_t
, вам нужно будет вернуться и проверить, что такое MapVertexVd_t
, и тогда наличие локальной typedef также не поможет (я не знаю, что Vertex_t
или Vd_t
представляют, но выбирают разумные имена, которые будут звонить в колокольчик относительно того, что это за тип и какие операции вы можете над ним выполнять).