大佬教程收集整理的这篇文章主要介绍了struct members使用循环赋值,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
struct hour_parameters{ uint8_t VALUE_00; uint8_t VALUE_01; uint8_t VALUE_02; uint8_t VALUE_03; uint8_t VALUE_04; uint8_t VALUE_05; uint8_t VALUE_06; uint8_t VALUE_07; uint8_t VALUE_08; uint8_t VALUE_09; uint8_t VALUE_10; uint8_t VALUE_11; uint8_t VALUE_12; uint8_t VALUE_13; uint8_t VALUE_14; uint8_t VALUE_15; uint8_t VALUE_16; uint8_t VALUE_17; uint8_t VALUE_18; uint8_t VALUE_19; uint8_t VALUE_20; uint8_t VALUE_21; uint8_t VALUE_22; uint8_t VALUE_23; }; struct hour_parameters hparam;
我想分配一个uint8_t x [24] hparam,我怎么能用for循环来做,
hparam.value00 = x[0]; hparam.value01 = x[1]; and so on?
#include <String.h> memcpy(&hparam,x,sizeof(hparam));
(我现在正躲在桌子底下)
这是危险的原因之一是结构中可能的填充.现在,
因为它们都是字节,所以你很安全.但是,从技术上讲,这种
东西不合法.你手头可以做的一件事是
assert(sizeof(hparam) == sizeof(X));
如果你坚持使用for循环:
for(int i = 0; i != sizeof(hparam); i++) { ((uint8_t *)&hparam)[i] = x[i]; }
这既丑陋又不太犹豫. Kerrek在下面的评论提出了不这样做的理由.
以上是大佬教程为你收集整理的struct members使用循环赋值全部内容,希望文章能够帮你解决struct members使用循环赋值所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。