foreach in C
c
C / C++
#include <stdio.h>
struct user_s {
char* name;
int age;
}
typedef struct user_s user_t;
static const user_t users[] = {
{ .name = "toto", .age = 8 },
{ .name = "titi", .age = 14 },
};
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
#define foreach(obj, objs) \
typeof(objs[0])* obj = objs; \
for(size_t size = ARRAY_SIZE(objs); size > 0; obj++, size--)
int main() {
//typeof(users[0])* user1 = users;
const user_t* user1 = users;
for(size_t size = ARRAY_SIZE(users); size > 0; user1++, size--) {
printf("%s à %dans\n", user1->name, user1->age);
}
foreach(user2, users) {
printf("%s à %dans\n", user2->name, user2->age);
}
return 0;
}