【发布时间】:2018-01-13 16:33:46
【问题描述】:
我想根据其内容自动确定字段 (addr) 的长度(uint32)。编译器是 GCC。我用这个:
uint8 len;
if(addr < 256) len = 1;
else if (addr < 65536) len = 2;
else if (addr < 16777216) len = 3;
else len = 4;
有没有更有效的方法?
这是在嵌入式设备的 SPI 函数中。我对除宏以外的最快方式感兴趣,因为addr 可以是变量。
【问题讨论】:
-
非常有趣!我也会试试这个!谢谢
-
我对这个问题感到困惑。这不是
sizeof的用途吗? -
sizeof 将返回变量的大小而不是它的内容
-
@Amourk - 该循环要么什么都不做,要么永远循环。
-
@Yunnosch:我认为 OP 想要值的字节数。
标签: c