Как объявить несколько указателей функций в одной строке без typedeffing?
больше из любопытства, чем что-либо. В основном я хочу знать, можно ли объявить несколько указателей функций в строке, что-то вроде:
int a = 1, b = 2;
С указателями на функции? Не прибегая к typedef
.
Я пробовал void (*foo = NULL, *bar = NULL)(int)
. Неудивительно, что это не сработало.
2 ответов
попробуйте сделать следующее:
void (*a)(int), (*b)(int);
void test(int n)
{
printf("%d\n", n);
}
int main()
{
a = NULL;
a = test;
a(1);
b = test;
b(2);
return 0;
}
EDIT:
другая форма-массив указателей функций:
void (*fun[2])(int) = {NULL, NULL};
void test(int n)
{
printf("%d\n",n);
}
int main()
{
fun[0] = NULL;
fun[0] = test;
fun[0](1);
fun[1] = test;
fun[1](2);
}
void (*foo)(int) = NULL, (*bar)(int) = NULL;
или как Grijesh говорит:
int main(void) {
int a[5], b[55];
int (*aa)[5] = &a, (*bb)[55] = &b;
return 0;
}