32 lines
905 B
C
32 lines
905 B
C
#include "i.h"
|
|
#include <stdio.h>
|
|
|
|
static void f3(void) {
|
|
printf("MAIN\n");
|
|
}
|
|
|
|
ADD_FUNC(f3);
|
|
|
|
#define section_foreach_entry(section_name, type_t, elem) \
|
|
for (type_t *elem = \
|
|
({ \
|
|
extern type_t __start_##section_name; \
|
|
&__start_##section_name; \
|
|
}); \
|
|
elem != \
|
|
({ \
|
|
extern type_t __stop_##section_name; \
|
|
&__stop_##section_name; \
|
|
}); \
|
|
++elem)
|
|
|
|
|
|
int main(int argc, char *argv[])
|
|
{
|
|
section_foreach_entry(my_array, func_ptr_t, entry) {
|
|
entry->cb(); /* this will call f1, f2 and f3 */
|
|
}
|
|
|
|
return 0;
|
|
}
|