簡體   English   中英

如何將int轉換為VARTYPE?

[英]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

這表明intVARTYPE寬,並且執行此VARTYPE會失去精度。

但是代碼足夠穩定

如果您想讓自己確信這確實是安全的操作,則應確保執行涵蓋x值范圍廣泛的測試。 如果你的目標使用32位int ,那么你應該確保你打值像2^162^32-1 ,仍然可以得到預期的結果。 如果x表示數量,則此操作將意味着對於超出VARTYPE可以表示的范圍的值,您將獲得一個可以由VARTYPE表示的VARTYPE

例如,如果將VARTYPE存儲為16位字,將int存儲為32位字,則當x的值從65535增大到65536時, vt將會重置(從65535變為0 )。

編輯:您指示VARTYPEunsigned short ,因此請確保避免聲明為intVARTYPE變量之間進行比較。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM