Должен ли я приводить переменные, которые используют тип typdef? - PullRequest
1 голос
/ 16 июня 2010

Если у меня есть что-то вроде:

typedef int MyType;

, это хорошая практика - приводить операнды операции, если я делаю что-то вроде этого:

int x = 5;
int y = 6;

MyType a = (MyType)(x + y);

Я знаю, что я не' нужно , чтобы сделать это, но интересно, лучше ли это для намерений / документации / читаемости.Или, если я просто сделаю:

MyType a = x + y;

Могут быть причины, по которым x и y не объявлены как MyType, но их сумма может быть использована в качестве аргумента функции, которая принимает MyType, например.

Ответы [ 2 ]

1 голос
/ 16 июня 2010

Я бы не использовал бросок.Это не нужно, выглядит беспорядочно, затрудняет синтаксический анализ кода и скрывает смысл кода.

Если вы постоянно используете typedefs (т. Е. Если вы объявляете x и y как MyType объектов), с этим проблем быть не должно.

0 голосов
/ 16 июня 2010

В ролях нет необходимости, и довольно некрасиво;если бы я поддерживал этот код, я бы его пропустил, когда впервые прочитал этот файл на общих принципах.Так что нет, ничего плохого он не сделает - он просто указывает, что произойдет со значением x + y в любом случае, - но он загромождает строку, и объявление MyType уже предоставляет всю документацию, необходимую для этой строки.1001 *

В общем, я чувствую, что вы должны попытаться явно разыграть вещи как можно меньше;когда вы видите приведение в коде, это должен быть индикатор того, что происходит что-то примечательное, а не просто то, что тип переменной будет изменяться во время выполнения.

...