【发布时间】:2014-05-23 20:37:58
【问题描述】:
我有一个存储在变量中的十六进制模式,我怎么知道十六进制模式的大小是多少 例如。 --
#define MY_PATTERN 0xFFFF
现在我想知道 MY_PATTERN 的大小,以便在我的代码中使用。
sizeof (MY_PATTERN)
这给了我警告——“整数转换导致截断”。
我该如何解决这个问题?我应该怎么写?
图案的大小可以增加或减少,因此我无法对其进行硬编码。
【问题讨论】:
-
那么
0xFFFF的“大小”是是多少? -
我怀疑警告来自您如何使用
sizeof()表达式的结果,而不是表达式本身。 -
模式允许的范围是多少?
-
我可以计算人的尺寸!!!请完整阅读。稍后我可能会更改定义的模式,因此如果我使用 2 个字节之类的内容,然后 MY_PATTERN 变量将更改为 0xFFFFFFFF。那该怎么办?
-
试试这个,没有警告:#include
int main () { #define MY_PATTERN 0xFFFF size_t x=sizeof (MY_PATTERN); printf ("%u\n", x); }