std*_*all 10 c comparison data-structures
今天我遇到了一种情况,我需要决定一个由大约40个元素组成的整个结构是否为零 - 这意味着每个元素都是零.
在思考如何尽可能快速有效地思考时,我想到了3种不同的方法:
memcmp
它与结构一致.例如
typedef union {
struct {
uint8_t a;
uint8_t b;
}
uint16_t c;
} STRUCTURE_A;
Run Code Online (Sandbox Code Playgroud)
然后将其与零进行比较.
我想知道您对这些解决方案的看法,您发现哪些解决方案最快,效率最高.
如果你有更好的方法,请告诉我......
谢谢.
oua*_*uah 16
将结构的每个成员与0进行比较.
这是比较两个结构对象的唯一安全方法(即使其中一个结构对象的所有成员都设置为值0).不要memcmp
用于比较结构,结构中填充的字节值是未指定的.另请注意,不允许将==
运算符与结构对象操作数一起使用.
在结构对象比较中查看此c-faq链接:
归档时间: |
|
查看次数: |
4258 次 |
最近记录: |