Code:
#include <stdio.h>
struct type
{
char c[16];
int i;
} array[] =
{
{"a",0},{"b",1},{"c",2},{"d",3},{"e",4},{"f",5},{"g",6},
};
char *foo(struct type *obj, size_t size, int event)
{
while ( size-- )
{
if ( obj->i == event )
{
return obj->c;
}
++obj;
}
return 0;
}
int main()
{
char *result = foo(array, sizeof array / sizeof *array, 4);
if ( result )
{
puts(result);
}
return 0;
}
[edit]
Code:
char *foo(int event)
{
static struct type
{
char c[16];
int i;
} array[] =
{
{"a",0},{"b",1},{"c",2},{"d",3},{"e",4},{"f",5},{"g",6},
};
size_t i;
for (i = 0; i < sizeof array / sizeof *array; ++i)
{
if ( array[i].i == event )
{
return array[i].c;
}
}
return 0;
}