c - 将数据添加到从循环内的结构读取的数组中

标签 c arrays struct

假设我想从一个结构体(来自不同的来源,但都是 uint 8 数据)收集数据到一个数组中,例如:

uint8 myArray[10];

myArray[0] = 2;
myArray[1] = date.day;
myArray[2] = date.year;
myArray[3] = date.month;
myArray[4] = softwrare_majornumber;
myArray[5] = softwrare_minor_number;
myArray[6] = 2;
myArray[7] = 5;
myArray[8] = 10;
myArray[9] = versions.header_v2;

如何以最快的方式在循环内执行此操作?

最佳答案

如果您正在尝试减少代码重复或重复的代码,您可以使用宏捕获此事件。举个简单的例子:

#define SET_MY_ARRAY(A, ...) \
    memcpy((A), (uint8_t[]){ __VA_ARGS__ }, sizeof(A))

SET_MY_ARRAY(myArray,
        2, date.day, date.year, date.month,
        softwrare_majornumber, softwrare_minor_number,
        2, 5, 10, versions.header_v2);

这是否会增加可读性是有争议的。

在我的测试中,您的个人初始化导致的移动次数是我的版本的一半。如果初始化性能很重要,您可以只捕获宏中的单独分配。

关于c - 将数据添加到从循环内的结构读取的数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58615466/

相关文章:

c++ - 在 Windows 上获取实际文件名(使用正确的大小写)

arrays - 在 NumPy 中,np.array([1, 2, 3, 4, 5]) 与 np.array([[1], [2], [3], [4], [5]]) 不同吗?

c - 将指向数组的指针传递给另一个函数 C

c - qsort 段错误结构

c - 如何将 BMP 文件读入 C 中的像素网格?

objective-c - C printf 格式说明符 %_fi

在 C 中使用 execlp 调用可执行文件

arrays - 在 React 渲染中使用数组内部数组

arrays - MongoDB:获取嵌套数组的所有元素

c++ - 在 C++ 中自动更新新结构中的相关值