2011-08-22 122 views
0

我處於這種情況,我在C代碼中收到額外的警告。類型將volatile char轉換爲註冊char類型

警告#2513-D:類型「volatile char *」的值不能分配給類型爲「char *」的實體A = B;

當我檢查了我的代碼,我發現,A和B等被定義:

register char *A; 
extern volatile char *B; 

任何人都可以請建議我我如何類型轉換爲忽略上述警告。如果我打字打字,是否有不良影響或副作用?我不想更改A的聲明,雖然它工作正常,並刪除警告。但改變A的聲明將會對我的代碼產生重大影響。

請建議一些方法。

感謝 Goldi

回答

0

寄存器關鍵字可以忽略不計。 你可以施放像

A = (char *) B; 

虛擲的volatile意味着一些優化(使用A的新值時),可能會導致過時的值被使用,而相同的計算採用B會產生不同的(而且可能更好)的結果。 假設我們正在談論C. C++是類似的,但不完全相同的AFAIK,即使在這種情況下應該不重要。

相關問題