Я не совсем уверен, что это именно то, что вы хотите сделать, но:
Вам придется объявлять и определять все ваши функции отдельно, но вы можете хранить свои указатели на функции в массиве.
typedef void (fragment_function) (char* location, int frag_num);
frag_function fragment_0, fragment_1, fragment_2; //define functions in cpp file
fragment_function *fragment [] =
{
fragment_0,
fragment_1,
fragment_2
};
Затем определите их так:
void fragment_0(char* location, int frag_num) { /**your definition here*/ }
Чтобы их можно было вызывать по индексу следующим образом:
for(int i=0; i<3; i++)
{
fragment[i](frag_location[i], frag_num[i]);
}