在我的C代码中,我遇到了一个额外的警告。
警告#2513-D:不能将"volatile char *“类型的值分配给"char *”A=B类型的实体;
当我检查我的代码时,我发现A和B的定义如下:
register char *A;
extern volatile char *B;有没有人可以建议我如何输入cast忽略上面的警告。如果我进行类型转换,会有什么不好的影响或副作用吗?我不想更改A的声明,尽管它可以很好地工作并删除警告。但是更改A的声明将对我的代码产生重大影响。
请给我一些建议。
谢谢Goldi
发布于 2011-11-04 21:06:25
可以忽略寄存器关键字。你可以像这样演绎
A = (char *) B;丢弃volatile意味着某些优化(当使用新值A时)可能会导致使用陈旧的值,而使用B的相同计算将产生不同的(可以说是更好的)结果。假设我们讨论的是C. C++是相似的,但不是完全相同的,即使在这种情况下它不应该有什么关系。
https://stackoverflow.com/questions/7145607
复制相似问题