fk0, легенда (22.11.2011 21:34 - 21:37, просмотров: 190) ответил fk0 на enum в C не работает, ещё раз C++. В C можно структуры передавать (вместо enum) или юнионы (внутри которых засунуть enum'ы). Если это всё обернуть в typedef'ы, то сходу даже и не заметишь (декларировать неудобно).
Вообще в нормальных ЯВУ есть именованные аргументы... В поделках финских студентов тоже можно, но через ()():
#include <stdio.h>
struct s {
int a;
char b;
float c;
};
void _func(struct s s)
{
printf("a=%d, b=%u, c=%f\n", s.a, (unsigned)s.b&0xff, (double)s.c);
}
#define func(...) _func((struct s){__VA_ARGS__})
int main()
{
/* struct s x = { 0, 0, 0 }; */
func( .a=5, .b=3 );
return 0;
}
[ZX]