大家早上好,
我试图减少一个非常重复的函数,但是每个“重复”都有两个结构,结构 A.element1 设置结构 B.element1。目前我有 myFunction() 和大约十二个不同的 reqFunction() 调用来将 B 设置为 A。基本上我现在拥有的是:
void myFunction( structB *B )
{
structA A;
if( reqGetFunction( GLOBAL_IN_1, ( void *)&A, SIZE ) != 0 )
{
A.element3 = -1;
printf( "element3 failed\n" );
}
B->element7 = A.element3; // A is gotten when regGetFunction() is called
.
.
.
if( reqGetFunction( GLOBAL_IN_12, ( void *)&A, SIZE ) != 0 )
{
A.element14 = -1;
printf( "element14 failed\n" );
}
B->element18 = A.element14;
}
reqGetFunction() 无法更改。我有一个用于循环 GLOBAL_IN 的其他函数的静态全局数组,我可以将 structA A 设为静态全局。
我想要像 myFunctionSingle() 这样的东西来做一个块,而 myFunctionAll() 将有一个 for 循环来循环遍历 GLOBAL_IN 数组以及结构的 A 和 B 的元素并将它们输入到 myFunctionSingle()。
所以我想我真正的问题是如何像使用数组一样循环遍历结构的元素,因为那里的所有内容(如结构的设置和 reqGetFunction)都是一成不变的。我已经尝试了一些东西并四处搜索,但目前被难住了。老实说,我不确定这是否可能,甚至是否值得。预先感谢您的意见!