开发者

Should I cast variables that use a typdef'd type?

If I have something like:

typedef int MyType;

is it good practice to cast the oper开发者_C百科ands of an operation if I do something like this:

int x = 5;
int y = 6;

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

I know that I don't need to do that but wondering if it's better for intent/documentation/readability concerns. Or, should I just do:

MyType a = x + y;

There may be reasons why x and y aren't declared as MyType but the sum of them could be used as an argument to a function that takes MyType, for example.


I wouldn't use a cast. It's unnecessary, looks messy, makes the code harder for a person to parse, and obscures the intent of the code.

If you use typedefs consistently (i.e., if you declare x and y as MyType objects as well), you shouldn't have too much of a problem with this.


The cast is unnecessary, and kinda ugly; if I were maintaining this code I'd yank it out in passing the the first time I read through that file on general principles. So no, it won't do anything bad - it's just indicating what is going to happen to the value of x + y anyways - but it clutters the line and the declaration of a as MyType already provides all the documentation that line needs.

In general, I feel you should try to explicitly cast things as little as possible; when you see a cast in code it should be an indicator that something noteworthy is happening, not simply that a variable's type is going to be changed during execution.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜