开发者

Type Casting of volatile char into register char type

I am in a situation where i a开发者_开发问答m getting an extra warning in my C code.

warning #2513-D: a value of type "volatile char *" cannot be assigned to an entity of type "char *" A = B;

when i checked my code i found that A and B are defined like:

register char *A;
extern volatile char *B;

Can anyone please suggest me how do i type cast to ignore the above warning. Is there any bad impact or side effect if i do type casting. I dont want to change the declaration of A, though it works fine and remove the warning. But changing the declaration of A will have major impact in my code.

Please suggest some way.

Thanks Goldi


The register keyword can be ignored. You could cast like

A = (char *) B;

Casting away the volatile means that some optimizations (when using the new value of A) could lead to stale values being used, whereas the same computation using B would produce a different (and arguably better) result. Assuming we're talking about C. C++ is similar, but not quite identical AFAIK, even if it shouldn't matter in this case.

0

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜