[英]How to convert int to VARTYPE?
我有
vt = x;
和
warning C4244: '=' : conversion from 'int' to 'VARTYPE', possible loss of data
但是代碼可以足夠穩定地工作,那么如何擺脫這種警告呢?
warning C4244: '=' : conversion from 'int' to 'VARTYPE', possible loss of data
這表明int
比VARTYPE
寬,並且執行此VARTYPE
會失去精度。
但是代碼足夠穩定
如果您想讓自己確信這確實是安全的操作,則應確保執行涵蓋x
值范圍廣泛的測試。 如果你的目標使用32位int
,那么你應該確保你打值像2^16
, 2^32-1
,仍然可以得到預期的結果。 如果x
表示數量,則此操作將意味着對於超出VARTYPE
可以表示的范圍的值,您將獲得一個可以由VARTYPE
表示的VARTYPE
。
例如,如果將VARTYPE
存儲為16位字,將int
存儲為32位字,則當x
的值從65535增大到65536時, vt
將會重置(從65535
變為0
)。
編輯:您指示VARTYPE
是unsigned short
,因此請確保避免聲明為int
和VARTYPE
變量之間進行比較。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.