对于某人而言,这可能只是一个简单的问题:
如何遍历其他c源文件中定义的数组。 这是一个例子:
typedef struct
{
int a;
int b;
}values;
values myvalues[] =
{
{ 2, 5 },
{ 10,15},
{ 20,25},
{ 30,35},
{ 40,45},
};
static void iterateLoop (void)
{
int i;
int x = 5;
for (i = 0; i< (sizeof(myvalues)/sizeof(values)); i++)
{
// Do something with myvalues[i].a;
if (x != myvalues[i].b)
{
// something;
else
{
// something;
}
}
}
这可以通过使用回调来完成吗?我需要一个第三个源文件作为接口或消费者可以直接访问生产者吗?
答案 0 :(得分:2)
你可以这样做:
typedef struct
{
int a;
int b;
} values;
#include "values.h"
values myvalues[] =
{
{ 2, 5 },
{ 10,15 },
{ 20,25 },
{ 30,35 },
{ 40,45 },
};
int nbofvalues = sizeof(myvalues) / sizeof(myvalues[0]);
#include "values.h"
extern values myvalues[];
extern int nbofvalues;
static void iterateLoop(void)
{
int i;
int x = 5;
for (i = 0; i < nbofvalues; i++)
{
// Do something with myvalues[i].a;
if (x != myvalues[i].b)
{
// something;
}
else
{
// something;
}
}
}